From 24ee1bda74cdb95fcd19ca0f9e8da5e8ff116f42 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 20 Aug 2026 20:39:19 +0000 Subject: [PATCH] =?UTF-8?q?Inclure=20le=2031=20ao=C3=BBt=20dans=20les=20gr?= =?UTF-8?q?andes=20vacances?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app_new/lib_ext/vacances_scolaires.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app_new/lib_ext/vacances_scolaires.py b/app_new/lib_ext/vacances_scolaires.py index 06e0593..0733588 100644 --- a/app_new/lib_ext/vacances_scolaires.py +++ b/app_new/lib_ext/vacances_scolaires.py @@ -45,11 +45,17 @@ def fetch_vacances_scolaires(zone="A", annee=None): # Filtrer pour l'année scolaire demandée start_date = datetime.fromisoformat(start.replace("Z", "+00:00")) if start_date.year >= annee - 1: + raw_end_date = datetime.fromisoformat(end.replace("Z", "+00:00")).date() + end_date = raw_end_date - timedelta(days=1) + # Pour l'agent, le 31 août reste une journée de vacances + # (la rentrée des enseignants ne déclenche pas la reprise). + if "grandes vacances" in description.lower() and raw_end_date.month == 8: + end_date = raw_end_date vacances.append({ "start_date": start_date.date(), # L'API indique la date de rentrée comme borne de fin. # Elle ne doit pas être affichée comme un jour de vacances. - "end_date": datetime.fromisoformat(end.replace("Z", "+00:00")).date() - timedelta(days=1), + "end_date": end_date, "description": description, "zone": zone }) @@ -179,7 +185,7 @@ def get_vacances_fallback(zone, annee): }, ] - return [{**vac, "end_date": vac["end_date"] - timedelta(days=1)} for vac in vacances] + return [{**vac, "end_date": vac["end_date"] if "grandes vacances" in vac["description"].lower() else vac["end_date"] - timedelta(days=1)} for vac in vacances] def get_jours_feries(annee=None):