aboutsummaryrefslogtreecommitdiff
path: root/management/commands
diff options
context:
space:
mode:
Diffstat (limited to 'management/commands')
-rw-r--r--management/commands/timetables.py26
1 files changed, 20 insertions, 6 deletions
diff --git a/management/commands/timetables.py b/management/commands/timetables.py
index 2d8a17e..b254788 100644
--- a/management/commands/timetables.py
+++ b/management/commands/timetables.py
@@ -14,6 +14,7 @@
# along with celcatsanitizer. If not, see <http://www.gnu.org/licenses/>.
import datetime
+import traceback
from django.core.management.base import BaseCommand
from django.db import transaction
@@ -25,17 +26,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
@@ -124,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: