aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlban Gruin2017-10-07 11:13:09 +0200
committerAlban Gruin2017-10-07 11:13:09 +0200
commitab47155c3d7eb9b5bf421c5f9c9c903602ebb175 (patch)
tree9dcb02267fa52daa59b6dcb4e25bc9f9662bb2e1
parent7f0dac074465ef838788202b80988005c35c0833 (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.py13
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):