diff options
-rw-r--r-- | forms.py | 23 |
1 files changed, 17 insertions, 6 deletions
@@ -37,10 +37,21 @@ class QSJPSForm(forms.Form): # On définit les valeurs par défaut de cette manière pour # éviter les mauvaises surprises. On retire les secondes des # heures de début et de fin. - self.fields["day"].initial = tz_now().strftime("%Y-%m-%d") - self.fields["begin"].initial = tz_now().strftime("%H:%M") - self.fields["end"].initial = (tz_now() + timedelta(hours=1)) \ - .strftime("%H:%M") + now = tz_now() + + self.fields["day"].initial = now.strftime("%Y-%m-%d") + self.fields["begin"].initial = now.strftime("%H:%M") + + # Si il est 23h passé, 23h + 1h revient à minuit passé, et ne + # respecte pas le critère de la recherche (début < fin). La + # valeur par défaut de la fin devient automatiquement 23:59. + if now.hour == 23: + # Cela ne marche toujours pas à 23h59. + # TODO trouver une solution plus pérenne. + self.fields["end"].initial = "23:59" + else: + self.fields["end"].initial = (now + timedelta(hours=1)) \ + .strftime("%H:%M") def clean(self): form_data = self.cleaned_data @@ -53,6 +64,6 @@ class QSJPSForm(forms.Form): form_data["begin"] >= form_data["end"]: # Si l’heure de fin est plus petite ou égale, on affiche # une erreur. - self._errors["end"].append("L’heure de début doit être supérieure " - "à celle de fin.") + self.add_error("end", "L’heure de début doit être" + "supérieure à celle de fin.") return form_data |