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):