60 lines
1.9 KiB
Python
60 lines
1.9 KiB
Python
|
|
"""
|
||
|
|
Parts Routes - GMAO Collège
|
||
|
|
Gestion des pièces détachées
|
||
|
|
"""
|
||
|
|
from flask import Blueprint, render_template, request, flash, redirect, url_for
|
||
|
|
from flask_login import login_required
|
||
|
|
from app_new.extensions import db
|
||
|
|
from ..core.models.company import Part
|
||
|
|
|
||
|
|
parts_bp = Blueprint('parts', __name__)
|
||
|
|
|
||
|
|
@parts_bp.route('/')
|
||
|
|
@login_required
|
||
|
|
def index():
|
||
|
|
"""Liste des pièces."""
|
||
|
|
page = request.args.get('page', 1, type=int)
|
||
|
|
parts = Part.query.order_by(Part.name).paginate(page=page, per_page=20)
|
||
|
|
return render_template('parts/index.html', parts=parts)
|
||
|
|
|
||
|
|
@parts_bp.route('/<int:id>')
|
||
|
|
@login_required
|
||
|
|
def detail(id):
|
||
|
|
"""Détail d'une pièce."""
|
||
|
|
part = Part.query.get_or_404(id)
|
||
|
|
return render_template('parts/detail.html', part=part)
|
||
|
|
|
||
|
|
|
||
|
|
@parts_bp.route('/<int:id>/edit', methods=['GET', 'POST'])
|
||
|
|
@login_required
|
||
|
|
def edit(id):
|
||
|
|
"""Modifier une pièce."""
|
||
|
|
part = Part.query.get_or_404(id)
|
||
|
|
if request.method == 'POST':
|
||
|
|
part.name = request.form.get('name')
|
||
|
|
part.reference = request.form.get('reference')
|
||
|
|
part.quantity = request.form.get('quantity', 0)
|
||
|
|
part.unit = request.form.get('unit')
|
||
|
|
db.session.commit()
|
||
|
|
flash('Pièce modifiée avec succès.', 'success')
|
||
|
|
return redirect(url_for('parts.detail', id=part.id))
|
||
|
|
return render_template('parts/form.html', part=part)
|
||
|
|
|
||
|
|
|
||
|
|
@parts_bp.route('/new', methods=['GET', 'POST'])
|
||
|
|
@login_required
|
||
|
|
def create():
|
||
|
|
"""Créer une pièce."""
|
||
|
|
if request.method == 'POST':
|
||
|
|
part = Part(
|
||
|
|
name=request.form.get('name'),
|
||
|
|
reference=request.form.get('reference'),
|
||
|
|
quantity=request.form.get('quantity', 0),
|
||
|
|
unit=request.form.get('unit')
|
||
|
|
)
|
||
|
|
db.session.add(part)
|
||
|
|
db.session.commit()
|
||
|
|
flash('Pièce créée avec succès.', 'success')
|
||
|
|
return redirect(url_for('parts.index'))
|
||
|
|
|
||
|
|
return render_template('parts/new.html')
|