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')

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