From f55e7ff672ba18291d7361c4c8649e174c9fa556 Mon Sep 17 00:00:00 2001 From: Alban Gruin Date: Thu, 19 Jan 2017 21:54:04 +0100 Subject: Amélioration de la qualité du code de la commande "timetables" --- management/commands/_private.py | 32 +++++++++++++++++--------------- management/commands/timetables.py | 10 +--------- 2 files changed, 18 insertions(+), 24 deletions(-) (limited to 'management/commands') diff --git a/management/commands/_private.py b/management/commands/_private.py index 7b71fc6..8767aa8 100644 --- a/management/commands/_private.py +++ b/management/commands/_private.py @@ -45,27 +45,29 @@ def get_events(soup, weeks, week, timetable): rooms = None notes = None - if weeks[event.rawweeks.text].number != week: - continue - - if event.resources.module is not None: - title = event.resources.module.item.text - - if event.category is not None: - type_ = event.category.text + if weeks[event.rawweeks.text].number == week and event.resources.group is not None and event.starttime is not None and event.endtime is not None: + 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")) - 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: - 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")) + if event.resources.module is not None: + title = event.resources.module.item.text + elif notes is not None: + title = notes + notes = None + else: + title = "Aucune information" + + if event.category is not None: + type_ = event.category.text + + 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")] yield title, type_, groups, rooms, notes, begin, end diff --git a/management/commands/timetables.py b/management/commands/timetables.py index 81e5a7d..99742ae 100644 --- a/management/commands/timetables.py +++ b/management/commands/timetables.py @@ -39,15 +39,7 @@ class Command(BaseCommand): weeks = get_weeks(soup) 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 = Course.objects.create(name=name, notes=notes, timetable=timetable, begin=begin, end=end) course.groups.add(*groups) if rooms is not None: -- cgit v1.2.1