diff options
-rw-r--r-- | Documentation/conf.py | 2 | ||||
-rw-r--r-- | Documentation/usage/versions.rst | 7 | ||||
-rw-r--r-- | __init__.py | 2 | ||||
-rw-r--r-- | forms.py | 23 | ||||
-rw-r--r-- | management/parsers/ups2018.py | 6 |
5 files changed, 29 insertions, 11 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/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. 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 <http://www.gnu.org/licenses/>. -VERSION = "0.14.0" +VERSION = "0.14.1" __version__ = VERSION default_app_config = "edt.apps.EdtConfig" @@ -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 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] |