diff options
author | Alban Gruin | 2019-08-29 17:19:12 +0200 |
---|---|---|
committer | Alban Gruin | 2019-08-30 13:56:36 +0200 |
commit | 5045af42503158db4155988f00ee0db0a6a67ff7 (patch) | |
tree | fd9afd7e8f0b26f3cbb26b41b771fe8f577a4098 | |
parent | 0717c8ccd6ac10989d86593ff73a86a0c4398408 (diff) |
templatetags/rooms: correction du nom brut des salles
Les salles et amphis commencent maintenant par leur département, de
cette manière :
FSI / Amphi FERMAT (bat.1A)
Au lieu de :
Amphi FERMAT (bat.1A)
Cela ne fait que rajouter du bruit sur la page. Ceci modifie le
filtre de formatage des salles pour retirer le département si il est
présent.
Signed-off-by: Alban Gruin <alban at pa1ch dot fr>
-rw-r--r-- | templatetags/rooms.py | 14 | ||||
-rw-r--r-- | tests.py | 34 |
2 files changed, 35 insertions, 13 deletions
diff --git a/templatetags/rooms.py b/templatetags/rooms.py index f0e1b2e..d8b0e23 100644 --- a/templatetags/rooms.py +++ b/templatetags/rooms.py @@ -1,4 +1,4 @@ -# Copyright (C) 2017 Alban Gruin +# Copyright (C) 2017, 2019 Alban Gruin # # celcatsanitizer is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published @@ -18,11 +18,17 @@ from django import template register = template.Library() +def __filter_room_name(name): + if '/' in name: + return name.split('/')[1].strip() + return name + + @register.filter def format_rooms(rooms): - amphi_list = [room.name for room in rooms if room.name.startswith("Amphi")] - room_list = [room.name for room in rooms - if not room.name.startswith("Amphi")] + names = [__filter_room_name(room.name) for room in rooms] + amphi_list = [name for name in names if name.startswith("Amphi")] + room_list = [name for name in names if not name.startswith("Amphi")] amphis = ", ".join(amphi_list) joined = ", ".join(room_list) @@ -341,6 +341,16 @@ class RoomTestCase(TestCase): for i in range(5, 7) ] + # On n’insère pas ces salles dans la base de données, elles ne + # servent que pour le test de formatage. + self.formatted_rooms = [ + Room(name="FSI / {}".format(str(i))) + for i in range(5) + ] + [ + Room(name="FSI / Amphi {}".format(str(i))) + for i in range(5, 7) + ] + hours = [({"begin": datetime.time(hour=14, minute=0)},), ({"begin": datetime.time(hour=16, minute=0)},), ({"begin": datetime.time(hour=13, minute=30)}, @@ -364,23 +374,29 @@ class RoomTestCase(TestCase): course.groups.add(group) course.rooms.add(room) - def test_format(self): - amphis = self.rooms[-2:] - + def __test_format(self, rooms, amphis): self.assertEqual(format_rooms([]), "") - self.assertEqual(format_rooms(self.rooms[:1]), "Salle 0") - self.assertEqual(format_rooms(self.rooms[:2]), "Salles 0, 1") + self.assertEqual(format_rooms(rooms[:1]), "Salle 0") + self.assertEqual(format_rooms(rooms[:2]), "Salles 0, 1") self.assertEqual(format_rooms([amphis[0]]), "Amphi 5") self.assertEqual(format_rooms(amphis), "Amphi 5, Amphi 6") - self.assertEqual(format_rooms([amphis[0]] + self.rooms[:1]), + self.assertEqual(format_rooms([amphis[0]] + rooms[:1]), "Amphi 5, salle 0") - self.assertEqual(format_rooms([amphis[0]] + self.rooms[:2]), + self.assertEqual(format_rooms([amphis[0]] + rooms[:2]), "Amphi 5, salles 0, 1") - self.assertEqual(format_rooms(amphis + self.rooms[:1]), + self.assertEqual(format_rooms(amphis + rooms[:1]), "Amphi 5, Amphi 6, salle 0") - self.assertEqual(format_rooms(amphis + self.rooms[:2]), + self.assertEqual(format_rooms(amphis + rooms[:2]), "Amphi 5, Amphi 6, salles 0, 1") + def test_format(self): + amphis = self.rooms[-2:] + self.__test_format(self.rooms, amphis) + + def test_reformat(self): + amphis = self.formatted_rooms[-2:] + self.__test_format(self.formatted_rooms, amphis) + def test_qsjps(self): begin = timezone.make_aware(datetime.datetime.combine( self.day, datetime.time(hour=15, minute=0))) |