gmao/app_new/interventions/planning.py

54 lines
2.2 KiB
Python
Raw Normal View History

2026-08-14 18:02:25 +02:00
"""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('/<int:id>/delete', methods=['POST'])
@login_required
def delete(id):
"""Supprimer définitivement une intervention."""
intervention = Intervention.query.get_or_404(id)
db.session.delete(intervention)
db.session.commit()
flash('Intervention supprimée définitivement.', 'success')
return redirect(url_for('interventions.index'))
@planning_bp.route('/<int:id>/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))