aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlban Gruin2017-10-06 18:55:05 +0200
committerAlban Gruin2017-10-06 18:55:05 +0200
commit527212137aa9c48b2e7e46f7f8fcbcb3d31f6b3b (patch)
treef54192136a7c9f93a46f362b6e0b68d3a4a2f448
parentf6e81c1a165b983316b49bdd433cd12cfebe1897 (diff)
parent7f0dac074465ef838788202b80988005c35c0833 (diff)
Merge branch 'stable/0.10.z' into prod/pa1ch/0.10.zv0.10.2-pa1ch
-rw-r--r--management/commands/timetables.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/management/commands/timetables.py b/management/commands/timetables.py
index 8945950..a152f9e 100644
--- a/management/commands/timetables.py
+++ b/management/commands/timetables.py
@@ -26,7 +26,13 @@ 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):
- today = timezone.make_aware(datetime.datetime.now())
+ 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:
+ today = begin
+ else:
+ today = timezone.make_aware(datetime.datetime.now())
# On récupère la mise à jour la plus ancienne dans les cours de l’emploi du temps
# commençant à partir de maintenant
@@ -34,7 +40,6 @@ def process_timetable_week(timetable, soup, weeks_in_soup, force, year=None, wee
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
- _, end = get_week(year, week)
last_update_date = last_update_date.filter(begin__lt=end)
last_update_date = last_update_date.aggregate(Min("last_update")) \
@@ -60,7 +65,10 @@ def process_timetable_week(timetable, soup, weeks_in_soup, force, year=None, wee
# Sinon, on efface tous les cours à partir de maintenant.
# Précisément, on prend la plus grande valeur entre la première semaine
# présente dans Celcat et maintenant.
- delete_from = max(min(weeks_in_soup.values()), today) # Vraiment utile ?
+ delete_from = min(weeks_in_soup.values())
+ if not force:
+ # Si jamais on force la MàJ, on efface tout à partir de la première semaine
+ delete_from = max(delete_from, today)
Course.objects.filter(timetable=timetable, begin__gte=delete_from).delete()
# Tous les cours commençant sur la période traitée