Fix: several errors in _get_dates_from_assi_form

This commit is contained in:
Emmanuel Viennet 2023-12-12 23:26:41 +01:00
parent 096b81296d
commit ae0971229e
1 changed files with 14 additions and 6 deletions

View File

@ -354,6 +354,7 @@ def _get_dates_from_assi_form(
try:
date_debut = datetime.datetime.strptime(form.date_debut.data, "%d/%m/%Y")
except ValueError:
date_debut = None
form.date_debut.errors.append("date début invalide")
ok = False
try:
@ -363,6 +364,7 @@ def _get_dates_from_assi_form(
else None
)
except ValueError:
date_fin = None
form.date_fin.errors.append("date fin invalide")
ok = False
@ -384,11 +386,17 @@ def _get_dates_from_assi_form(
form.heure_fin.errors.append("heure fin invalide")
ok = False
# Vérifie cohérence des dates/heures
dt_debut = datetime.datetime.combine(date_debut, heure_debut)
dt_fin = datetime.datetime.combine(date_fin or date_debut, heure_fin)
if dt_fin <= dt_debut:
dt_debut = (
datetime.datetime.combine(date_debut, heure_debut) if date_debut else None
)
dt_fin = (
datetime.datetime.combine(date_fin or date_debut, heure_fin)
if (date_fin or date_debut)
else None
)
if ok and dt_fin <= dt_debut:
form.errors["general_errors"] = ["Erreur: dates début/fin incohérentes"]
return False
ok = False
# La date de dépot (si vide, la date actuelle)
dt_entry_date = (
datetime.datetime.strptime(form.entry_date.data, "%d/%m/%Y")
@ -396,8 +404,8 @@ def _get_dates_from_assi_form(
else None
)
# Ajoute time zone serveur
dt_debut_tz_server = scu.TIME_ZONE.localize(dt_debut)
dt_fin_tz_server = scu.TIME_ZONE.localize(dt_fin)
dt_debut_tz_server = scu.TIME_ZONE.localize(dt_debut) if dt_debut else None
dt_fin_tz_server = scu.TIME_ZONE.localize(dt_fin) if dt_fin else None
dt_entry_date_tz_server = (
scu.TIME_ZONE.localize(dt_entry_date) if dt_entry_date else None
)