diff options
author | Alban Gruin | 2017-10-07 11:13:09 +0200 |
---|---|---|
committer | Alban Gruin | 2017-10-07 11:13:09 +0200 |
commit | ab47155c3d7eb9b5bf421c5f9c9c903602ebb175 (patch) | |
tree | 9dcb02267fa52daa59b6dcb4e25bc9f9662bb2e1 | |
parent | 7f0dac074465ef838788202b80988005c35c0833 (diff) |
La fonction create() des modèles créée un objet en base, donc ne pasv0.10.3
sauvegarder après coup, comme ce qui était fait jusque là créait des
cours sans nom ni type, faisant crasher le générateur d’ICS.
La comparaison du début d’un cours se fait maintenant directement dans
get_event(), avant que l’objet Course ne soit créé.
-rw-r--r-- | management/commands/_private.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/management/commands/_private.py b/management/commands/_private.py index d576daf..bad6e6f 100644 --- a/management/commands/_private.py +++ b/management/commands/_private.py @@ -80,7 +80,7 @@ def get_from_db_or_create(cls, **kwargs): return obj -def get_event(timetable, event, event_week): +def get_event(timetable, event, event_week, today): """Renvoie une classe Course à partir d’un événement récupéré par BS4""" # On récupère la date de l’évènement à partir de la semaine # et de la semaine référencée, puis l’heure de début et de fin @@ -88,6 +88,10 @@ def get_event(timetable, event, event_week): begin = add_time(date, event.starttime.text) end = add_time(date, event.endtime.text) + # On ne traite pas le cours si il commence après le moment du traitement + if begin < today: + return + # Création de l’objet cours course = Course.objects.create(timetable=timetable, begin=begin, end=end) @@ -142,11 +146,10 @@ def get_events(timetable, soup, weeks_in_soup, today, year=None, week=None): year is None or week is None) and \ event.resources.group is not None and \ event.starttime is not None and event.endtime is not None: - course = get_event(timetable, event, event_week) + course = get_event(timetable, event, event_week, today) - # On ne sauvegarde le cours que si il ne - # commence après le moment du traitement - if course.begin >= today: + # On renvoie le cours si il n’est pas nul + if course is not None: yield course def get_update_date(soup): |