diff options
| author | Alban Gruin | 2017-01-19 21:43:34 +0100 | 
|---|---|---|
| committer | Alban Gruin | 2017-01-19 21:43:34 +0100 | 
| commit | d70781860ba63d457b63a977a2d403ad9aa160b9 (patch) | |
| tree | 55c04cd28fa07368ff3c3df893fbbab2d6c473b7 /management/commands | |
| parent | eea8dd99b859943d441e36b4958ce7bf61a27e8f (diff) | |
Ajout d'un champ "notes" aux cours.
Il apparement possible qu'un cours n'ai pas de nom, ni de salle bien définie, ou que ces informations
soient stockées dans un champ "notes".
Le traitement d'un évenement celcat peut être interrompu seulement si aucun groupe n'est renseigné.
Si aucun nom n'est renseigné, il est remplacé par le contenu de la note.
Diffstat (limited to 'management/commands')
| -rw-r--r-- | management/commands/_private.py | 16 | ||||
| -rw-r--r-- | management/commands/timetables.py | 17 | 
2 files changed, 24 insertions, 9 deletions
diff --git a/management/commands/_private.py b/management/commands/_private.py index 4e84363..7b71fc6 100644 --- a/management/commands/_private.py +++ b/management/commands/_private.py @@ -43,27 +43,31 @@ def get_events(soup, weeks, week, timetable):          type_ = None          groups = None          rooms = None +        notes = None          if weeks[event.rawweeks.text].number != week:              continue          if event.resources.module is not None: -            title = event.resources.module.text +            title = event.resources.module.item.text -        if event.category is not None and title is not None: +        if event.category is not None:              type_ = event.category.text -        if event.resources.group is not None and type_ is not None: +        if event.resources.group is not None:              groups = [get_from_db_or_create(Group, item.text, timetable) for item in event.resources.group.find_all("item")] -        if event.resources.room is not None and groups is not None: -            rooms = [get_from_db_or_create(Room, item.text) for item in event.resources.room.find_all("item")] +            if event.resources.room is not None: +                rooms = [get_from_db_or_create(Room, item.text) for item in event.resources.room.find_all("item")] + +            if event.notes is not None: +                notes = event.notes.text              date = weeks[event.rawweeks.text].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")) -            yield title, type_, groups, rooms, begin, end +            yield title, type_, groups, rooms, notes, begin, end  def get_weeks(soup):      weeks = {} diff --git a/management/commands/timetables.py b/management/commands/timetables.py index 50382ed..81e5a7d 100644 --- a/management/commands/timetables.py +++ b/management/commands/timetables.py @@ -38,10 +38,21 @@ class Command(BaseCommand):                  soup = get_xml(timetable.url)                  weeks = get_weeks(soup) -                for name, type_, groups, rooms, begin, end in get_events(soup, weeks, week, timetable): -                    course = Course.objects.create(name=name, type=type_, timetable=timetable, begin=begin, end=end) +                for name, type_, groups, rooms, notes, begin, end in get_events(soup, weeks, week, timetable): +                    course = Course.objects.create(timetable=timetable, begin=begin, end=end) + +                    if name is not None: +                        course.name = name +                        course.notes = notes +                    elif notes is not None: +                        course.name = notes +                    else: +                        course.name = "Aucune information" +                      course.groups.add(*groups) -                    course.rooms.add(*rooms) +                    if rooms is not None: +                        course.rooms.add(*rooms) +                      course.save()          self.stdout.write(self.style.SUCCESS("Done."))  | 
