gmao/app_new/parts/routes.py

60 lines
1.9 KiB
Python
Raw Normal View History

2026-08-14 18:02:25 +02:00
"""
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')