""" 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('/') @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('//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')