aboutsummaryrefslogtreecommitdiff
path: root/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'forms.py')
-rw-r--r--forms.py23
1 files changed, 17 insertions, 6 deletions
diff --git a/forms.py b/forms.py
index 00dbf9e..d4ee94d 100644
--- a/forms.py
+++ b/forms.py
@@ -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