From c476a83d3c92d705d0bdea8b37a9aa6f10cb50ac Mon Sep 17 00:00:00 2001 From: Alban Gruin Date: Sat, 4 Nov 2017 12:24:25 +0100 Subject: 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. --- management/commands/timetables.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'management/commands') 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 -- cgit v1.2.1 From 37a95855076035470e7484804ed48b779ed22277 Mon Sep 17 00:00:00 2001 From: Alban Gruin Date: Sat, 4 Nov 2017 12:32:26 +0100 Subject: Affichage de la pile d’exécution lors d’une erreur de màj d’emploi du temps --- management/commands/timetables.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'management/commands') diff --git a/management/commands/timetables.py b/management/commands/timetables.py index d0bf0bd..b254788 100644 --- a/management/commands/timetables.py +++ b/management/commands/timetables.py @@ -14,6 +14,7 @@ # along with celcatsanitizer. If not, see . import datetime +import traceback from django.core.management.base import BaseCommand from django.db import transaction @@ -135,9 +136,11 @@ class Command(BaseCommand): try: process_timetable(timetable, options["force"], year, weeks) - except Exception as exc: + except Exception: self.stderr.write( - self.style.ERROR("Failed to process {0}: {1}".format(timetable, exc))) + self.style.ERROR("Failed to process {0}:".format(timetable)) + ) + self.stderr.write(self.style.ERROR(traceback.format_exc())) errcount += 1 if errcount == 0: -- cgit v1.2.1