Assiduité : fix bug assi jour complet + affichage calendrier

This commit is contained in:
Iziram 2024-02-28 10:50:15 +01:00
parent 185e061f01
commit 3d6be2f200
1 changed files with 13 additions and 3 deletions

View File

@ -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