diff options
Diffstat (limited to 'management/commands')
| -rw-r--r-- | management/commands/timetables.py | 26 | 
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: | 
