From 6b56817dbbacaed846ef7b12cf9795011f84bffb Mon Sep 17 00:00:00 2001 From: root Date: Thu, 20 Aug 2026 17:51:36 +0000 Subject: [PATCH] Utiliser la zone C et synchroniser les vacances --- app_new/lib_ext/vacances_scolaires.py | 13 +++++++++++++ .../planning/templates/planning/time_tracking.html | 2 +- app_new/planning/time_tracking.py | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/app_new/lib_ext/vacances_scolaires.py b/app_new/lib_ext/vacances_scolaires.py index b354454..e25f161 100644 --- a/app_new/lib_ext/vacances_scolaires.py +++ b/app_new/lib_ext/vacances_scolaires.py @@ -75,6 +75,19 @@ def import_vacances_scolaires(zone="A", annee=None, user_id=None): if not vacances: # Données de fallback si l'API n'est pas accessible vacances = get_vacances_fallback(zone, annee) + + # Les périodes importées représentent une seule zone de référence. + # Lors d'un changement de zone, retirer uniquement les anciennes + # périodes issues d'un import officiel (jamais les périodes manuelles). + imported_closures = CollegeClosure.query.filter( + CollegeClosure.closure_type == "vacances_scolaires", + CollegeClosure.notes.like("Zone académique % — import officiel"), + ).all() + for existing in imported_closures: + if not (existing.notes or "").startswith(f"Zone académique {zone} "): + db.session.delete(existing) + if imported_closures: + db.session.flush() ajoutees = 0 ignorees = 0 diff --git a/app_new/planning/templates/planning/time_tracking.html b/app_new/planning/templates/planning/time_tracking.html index 03f09d4..128ab12 100644 --- a/app_new/planning/templates/planning/time_tracking.html +++ b/app_new/planning/templates/planning/time_tracking.html @@ -34,7 +34,7 @@ {% for day_num, day_name in days.items() %}
{{ day_name }}
{% endfor %} -
Importer les calendriers
+
Importer les calendriers
Changer de zone remplace les périodes scolaires importées pour l’autre zone.
Permanences dans les vacancesSélectionnez plusieurs dates puis l’horaire type à appliquer.
{% for option in permanence_options %}
{% else %}
Aucune période de vacances importée pour cette période. Importez d’abord le calendrier scolaire.
{% endfor %}
diff --git a/app_new/planning/time_tracking.py b/app_new/planning/time_tracking.py index 7795fae..e614c9d 100644 --- a/app_new/planning/time_tracking.py +++ b/app_new/planning/time_tracking.py @@ -227,7 +227,7 @@ def save_time_entry(): def import_school_vacations(): from app_new.lib_ext.vacances_scolaires import import_vacances_scolaires year = request.form.get("year", date.today().year, type=int) - added, ignored, errors = import_vacances_scolaires(request.form.get("zone", "B"), year, current_user.id) + added, ignored, errors = import_vacances_scolaires(request.form.get("zone", "C"), year, current_user.id) flash(f"Vacances importées : {added} ajoutée(s), {ignored} déjà présente(s)." + (f" {len(errors)} erreur(s)." if errors else ""), "warning" if errors else "success") return _redirect(year)