From 75e004c9755bca39b09ea84cf8c49d57574fe177 Mon Sep 17 00:00:00 2001 From: Alban Gruin Date: Mon, 10 Sep 2018 23:20:40 +0200 Subject: forms: correction de l’ajout du message d’erreur La fonction de recherche QSJPS demande à ce que l’heure de début soit strictement supérieure à l’heure de fin. Le formulaire vérifie donc que ce critère soit respecté lors de la validation, et devrait afficher une erreur si il ne l’est pas. Or, le message d’erreur n’était pas rajouté correctement et fait planter la validation. De plus, lorsqu’il est 23h, les valeurs par défaut ne respectent pas cette condition (on rajoute une heure, il est donc minuit passé). La valeur par défaut du champ de fin est donc "23:59" si il est 23 heures. Il est important de noter que cette valeur ne valide toujours pas le critère à 23h59, il serait bon de trouver une solution plus pérenne à l’avenir, même si je doute que beaucoup de personnes ne cherche une salle libre à ces heures… Signed-off-by: Alban Gruin --- forms.py | 23 +++++++++++++++++------ 1 file 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 -- cgit v1.2.1 From ab6ca3c158477a7d5c055fb0cb9346c2b97d19f6 Mon Sep 17 00:00:00 2001 From: Alban Gruin Date: Wed, 19 Sep 2018 19:23:50 +0200 Subject: parsers: correction de l’index du premier élément à analyser Commencer au premier élément fait planter l’étape de déduction des éléments des cours si jamais un cours n’a ni nom, ni type. Signed-off-by: Alban Gruin --- management/parsers/ups2018.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/management/parsers/ups2018.py b/management/parsers/ups2018.py index 8d97517..15c629a 100644 --- a/management/parsers/ups2018.py +++ b/management/parsers/ups2018.py @@ -94,7 +94,7 @@ class Parser(AbstractParser): if data[0] == "Global Event": return - i = 1 + i = 0 while i < len(data) and not data[i].startswith( ("L1 ", "L2 ", "L3 ", "L3P ", "M1 ", "M2 ", "DEUST ", "MAG1 ", "1ERE ANNEE ", "2EME ANNEE ", "3EME ANNEE ", @@ -103,11 +103,11 @@ class Parser(AbstractParser): i += 1 groups = data[i] - if i - 1 > 0: + if i - 1 >= 0: course.name = ", ".join(set(data[i - 1].split(';'))) else: course.name = "Sans nom" - if i - 2 > 0: + if i - 2 >= 0: course.type = data[i - 2] if len(data) >= i + 2: rooms = data[i + 1] -- cgit v1.2.1 From bc69c86a4c8d57216335d35a402081a15357351d Mon Sep 17 00:00:00 2001 From: Alban Gruin Date: Wed, 19 Sep 2018 20:38:11 +0200 Subject: doc: mise à jour de la documentation Signed-off-by: Alban Gruin --- Documentation/usage/versions.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Documentation/usage/versions.rst b/Documentation/usage/versions.rst index 3b45c59..8812b17 100644 --- a/Documentation/usage/versions.rst +++ b/Documentation/usage/versions.rst @@ -81,3 +81,10 @@ Les objectifs originaux de celcatsanitizer consistaient en ceux de la Ils n’ont pas pu être suivis à cause d’un manque de temps et de tests et ont étés reportés à la version 0.15. + +Version 0.14.1 +-------------- + - Correction d’un bogue qui faisait planter la recherche de salles si + l’heure de début est après l’heure de fin. + - Correction d’un bogue lorsqu’un cours ne possède ni nom ni type + dans le parseur UPS2018, résultant en un échec de mise à jour. -- cgit v1.2.1 From fd516af7aedf938cc6fb65eca556e8341a0dfd92 Mon Sep 17 00:00:00 2001 From: Alban Gruin Date: Wed, 19 Sep 2018 20:39:04 +0200 Subject: Version 0.14.1 Signed-off-by: Alban Gruin --- Documentation/conf.py | 2 +- __init__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/conf.py b/Documentation/conf.py index 385d7c7..198e67a 100644 --- a/Documentation/conf.py +++ b/Documentation/conf.py @@ -15,7 +15,7 @@ copyright = u'%d, Alban Gruin' % year author = u'Alban Gruin' version = u'0.14' -release = u'0.14.0' +release = u'0.14.1' language = 'fr' diff --git a/__init__.py b/__init__.py index 746391c..d95a5fd 100644 --- a/__init__.py +++ b/__init__.py @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Affero General Public License # along with celcatsanitizer. If not, see . -VERSION = "0.14.0" +VERSION = "0.14.1" __version__ = VERSION default_app_config = "edt.apps.EdtConfig" -- cgit v1.2.1