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  | 
