diff --git a/app/views/assiduites.py b/app/views/assiduites.py index fc562d69..8a8fee7e 100644 --- a/app/views/assiduites.py +++ b/app/views/assiduites.py @@ -336,7 +336,14 @@ def _get_dates_from_assi_form( ) # 23h59 ou ConfigAssiduite.AfternoonTime else: try: - heure_debut = datetime.time.fromisoformat(form.heure_debut.data or "00:00") + if all_day: + heure_debut = datetime.time.fromisoformat( + form.heure_debut.data or "00:00" + ) + else: + heure_debut = datetime.time.fromisoformat( + form.heure_debut.data or debut_jour + ) except ValueError: form.set_error("heure début invalide", form.heure_debut) if bool(form.heure_debut.data) != bool(form.heure_fin.data): @@ -344,7 +351,10 @@ def _get_dates_from_assi_form( "Les deux heures début et fin doivent être spécifiées, ou aucune" ) try: - heure_fin = datetime.time.fromisoformat(form.heure_fin.data or "23:59") + if all_day: + heure_fin = datetime.time.fromisoformat(form.heure_fin.data or "23:59") + else: + heure_fin = datetime.time.fromisoformat(form.heure_fin.data or fin_jour) except ValueError: form.set_error("heure fin invalide", form.heure_fin) @@ -2513,7 +2523,7 @@ class Jour: else heure_soir ) - emplacement: float = ((deb - heure_matin) / longueur_timeline) * 100 + emplacement: float = max(((deb - heure_matin) / longueur_timeline) * 100, 0) longueur: float = ((fin - deb) / longueur_timeline) * 100 if longueur + emplacement > 100: longueur = 100 - emplacement