gmao/app_new/lots/routes.py

46 lines
1.5 KiB
Python
Raw Normal View History

2026-08-14 18:02:25 +02:00
"""
Lots Routes - GMAO Collège
Gestion des lots de maintenance
"""
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.maintenance import Lot, LotTask
from ..core.models.company import Company
lots_bp = Blueprint('lots', __name__)
@lots_bp.route('/')
@login_required
def index():
"""Liste des lots."""
lots = Lot.query.order_by(Lot.name).all()
return render_template('lots/index.html', lots=lots)
@lots_bp.route('/<int:id>')
@login_required
def detail(id):
"""Détail d'un lot."""
from app_new.core.models.equipment import Equipment
lot = Lot.query.get_or_404(id)
# Récupérer les équipements de ce lot
equipments = Equipment.query.filter_by(lot_id=id).order_by(Equipment.name).all()
return render_template('lots/detail.html', lot=lot, equipments=equipments)
@lots_bp.route('/<int:id>/edit')
@login_required
def edit(id):
"""Modifier un lot (formulaire)."""
lot = Lot.query.get_or_404(id)
# TODO: formulaire d'édition
flash("Fonctionnalité en cours de développement", "info")
return redirect(url_for('lots.detail', id=id))
@lots_bp.route('/<int:id>/delete', methods=['POST'])
@login_required
def delete(id):
"""Supprimer un lot."""
lot = Lot.query.get_or_404(id)
# TODO: suppression avec déplacement vers corbeille
flash("Fonctionnalité en cours de développement", "info")
return redirect(url_for('lots.index'))