diff options
Diffstat (limited to 'management/commands')
| -rw-r--r-- | management/commands/_private.py | 34 | 
1 files changed, 10 insertions, 24 deletions
| diff --git a/management/commands/_private.py b/management/commands/_private.py index e018e3a..0b26b4e 100644 --- a/management/commands/_private.py +++ b/management/commands/_private.py @@ -24,22 +24,9 @@ from edt.utils import get_week  import requests - -class Week: -    def __init__(self, number, start): -        self.number = number -        self.start = timezone.make_aware( -            datetime.datetime.strptime(start, "%d/%m/%Y")) - -    def get_day(self, day_id): -        return self.start + datetime.timedelta(day_id) - -    @property -    def year(self): -        return self.start.year -  def add_time(date, time): -    delta = datetime.timedelta(hours=time.hour, minutes=time.minute) +    ptime = datetime.datetime.strptime(time, "%H:%M") +    delta = datetime.timedelta(hours=ptime.hour, minutes=ptime.minute)      return date + delta  def consolidate_group(group): @@ -98,21 +85,20 @@ def get_events(timetable, soup, weeks_in_soup, year=None, week=None):      Le traîtement se limitera à la semaine indiquée si il y en a une."""      for event in soup.find_all("event"):          event_week = weeks_in_soup[event.rawweeks.text] +        event_week_num = event_week.isocalendar()[1] # Numéro de semaine          # On passe le traitement si la semaine de l’événement ne correspond pas          # à la semaine passée, ou qu’il ne contient pas de groupe ou n’a pas de          # date de début ou de fin. -        if (event_week.number == week and event_week.year == year or \ +        if (event_week_num == week and event_week.year == year or \              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:              # On récupère la date de l’évènement à partir de la semaine -            # et de la semaine référencée, puis la date de début et de fin -            date = event_week.get_day(int(event.day.text)) -            begin = add_time(date, datetime.datetime.strptime( -                event.starttime.text, "%H:%M")) -            end = add_time(date, datetime.datetime.strptime( -                event.endtime.text, "%H:%M")) +            # et de la semaine référencée, puis l’heure de début et de fin +            date = event_week + datetime.timedelta(int(event.day.text)) +            begin = add_time(date, event.starttime.text) +            end = add_time(date, event.endtime.text)              # Création de l’objet cours              course = Course.objects.create(timetable=timetable, begin=begin, @@ -182,8 +168,8 @@ def get_update_date(soup):  def get_weeks(soup):      weeks = {}      for span in soup.find_all("span"): -        weeks[span.alleventweeks.text] = Week(int(span.title.text), -                                              span["date"]) +        weeks[span.alleventweeks.text] = timezone.make_aware( +            datetime.datetime.strptime(span["date"], "%d/%m/%Y"))      return weeks | 
