aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlban Gruin2017-11-04 12:24:25 +0100
committerAlban Gruin2017-11-04 12:24:25 +0100
commitc476a83d3c92d705d0bdea8b37a9aa6f10cb50ac (patch)
treed594a49516c64a15647b0ad690ad8887de69a146
parentbb973abfbd566a0f019822453d06f8b0ef3f6dac (diff)
Correction d’un bug qui empêche la mise à jour complète de l’emploi du temps
Lorsqu’on demande une mise à jour, la semaine et le mois à mettre à jour sont passés en paramètre de la fonction de mise à jour. Mais quand on demande la mise à jour de tout l’emploi du temps, ces deux paramètres sont à None, faisant planter la fonction qui calcul le début et la fin de la semaine.
-rw-r--r--management/commands/timetables.py19
1 files changed, 15 insertions, 4 deletions
diff --git a/management/commands/timetables.py b/management/commands/timetables.py
index 2d8a17e..d0bf0bd 100644
--- a/management/commands/timetables.py
+++ b/management/commands/timetables.py
@@ -25,17 +25,28 @@ from ._private import delete_courses_in_week, get_events, get_update_date, get_w
@transaction.atomic
def process_timetable_week(timetable, soup, weeks_in_soup, force, year=None, week=None):
- begin, end = get_week(year, week)
+ if year is not None and week is not None:
+ begin, end = get_week(year, week)
+
# Si on force la mise à jour, on définit de moment
# de la mise à jour au début de la semaine
- if force:
+ if force and year is not None and week is not None:
today = begin
+ elif force:
+ # Si la mise à jour est faite sur tout l’emploi du temps,
+ # alors la date de début est indéfinie.
+ today = None
else:
today = tz_now()
# On récupère la mise à jour la plus ancienne dans les cours de l’emploi du temps
- # commençant à partir de maintenant
- last_update_date = Course.objects.filter(timetable=timetable, begin__gte=today)
+ last_update_date = Course.objects.filter(timetable=timetable)
+
+ if today is not None:
+ # Cette date concerne les éléments commençant à partir d’aujourd’hui si la valeur
+ # n’est pas nulle.
+ last_update_date = last_update_date.filter(begin__gte=today)
+
if year is not None and week is not None:
# Si jamais on traite une semaine spécifique, on limite les cours sélectionnés
# à ceux qui commencent entre le début du traitement et la fin de la semaine