"""Interventions Planning Routes - GMAO Collège""" from flask import Blueprint, render_template, redirect, url_for, request, flash, jsonify from flask_login import login_required, current_user from app_new.extensions import db from ..core.models.maintenance import Intervention, InterventionComment from ..core.models.equipment import Equipment from ..core.models.user import User from datetime import datetime planning_bp = Blueprint("interventions_planning", __name__, url_prefix="/interventions", template_folder="templates") @planning_bp.route('/planning') @login_required def planning(): """Planning des interventions préventives.""" from datetime import datetime, timezone, timedelta # Recuperer les interventions preventives planifiees preventive_interventions = Intervention.query.filter( Intervention.type == 'preventif', Intervention.scheduled_date != None ).order_by(Intervention.scheduled_date).all() return render_template('interventions/planning.html', interventions=preventive_interventions, stats={'total': len(preventive_interventions), 'en_attente': 0, 'en_cours': 0, 'terminee': 0}) @planning_bp.route('//delete', methods=['POST']) @login_required def delete(id): """Archiver une intervention sans détruire son historique.""" intervention = Intervention.query.get_or_404(id) intervention.is_deleted = True intervention.deleted_at = datetime.utcnow() intervention.deleted_by_id = current_user.id db.session.commit() flash('Intervention placée dans la corbeille. Son historique est conservé.', 'success') return redirect(url_for('interventions.index')) @planning_bp.route('//restore', methods=['POST']) @login_required def restore(id): """Restaurer une intervention depuis la corbeille.""" intervention = Intervention.query.get_or_404(id) if not intervention.is_deleted: flash("Cette intervention n'est pas dans la corbeille.", 'warning') return redirect(url_for('interventions.detail', id=intervention.id)) intervention.is_deleted = False intervention.deleted_at = None intervention.deleted_by_id = None db.session.commit() flash('Intervention restaurée.', 'success') return redirect(url_for('interventions.detail', id=intervention.id))