diff options
| -rw-r--r-- | management/commands/timetables.py | 42 | 
1 files changed, 23 insertions, 19 deletions
| diff --git a/management/commands/timetables.py b/management/commands/timetables.py index c5159b7..ee33f7e 100644 --- a/management/commands/timetables.py +++ b/management/commands/timetables.py @@ -81,25 +81,29 @@ def process_timetable_week(source, force, parser, year=None, week=None):         new_update_date is not None and last_update_date >= new_update_date:          return -    if year is not None and week is not None: -        # On efface la semaine à partir de maintenant si jamais -        # on demande le traitement d’une seule semaine -        delete_courses_in_week(source, year, week, today) -    else: -        # 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 = min(parser.weeks.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(source=source, begin__gte=delete_from).delete() - -    # Tous les cours commençant sur la période traitée -    # sont parsés, puis enregistrés dans la base de données. -    for course in parser.get_events(today, year, week): -        course.save() +    # Pas de traitement si il n’y a pas de semaine dans l’emploi du temps +    if len(parser.weeks.values()): +        if year is not None and week is not None: +            # On efface la semaine à partir de maintenant si jamais +            # on demande le traitement d’une seule semaine +            delete_courses_in_week(source, year, week, today) +        else: +            # 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 = min(parser.weeks.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( +                source=source, begin__gte=delete_from).delete() + +        # Tous les cours commençant sur la période traitée +        # sont parsés, puis enregistrés dans la base de données. +        for course in parser.get_events(today, year, week): +            course.save()      # On renseigne la date de mise à jour de Celcat, à des fins de statistiques      source.last_update_date = new_update_date | 
