From c38aa61cefe504710eb3edaba772c22e3fd36fda Mon Sep 17 00:00:00 2001
From: HanseGucker <joniweth@gmx.de>
Date: Sat, 17 Nov 2018 13:24:45 +0100
Subject: [PATCH] Correct rooms in substitutions

---
 biscuit/apps/untis/parse.py | 41 +++++++++++++++++++++++++++++--------
 biscuit/apps/untis/sub.py   | 14 ++++++++-----
 2 files changed, 42 insertions(+), 13 deletions(-)

diff --git a/biscuit/apps/untis/parse.py b/biscuit/apps/untis/parse.py
index 73731d8..482f0e6 100755
--- a/biscuit/apps/untis/parse.py
+++ b/biscuit/apps/untis/parse.py
@@ -57,7 +57,7 @@ class Lesson(object):
 
         # print(rld2)
 
-        for el in rld2:
+        for i, el in enumerate(rld2):
             teacher_id = int(el[0])
             subject_id = int(el[2])
             room_ids = untis_split_third(el[4], int)
@@ -75,10 +75,14 @@ class Lesson(object):
             else:
                 subject = None
 
+            # rooms = self.times[i].rooms[i]
+            # for room_id in room_ids:
+            #     r = drive["rooms"][room_id]
+            #     rooms.append(r)
             rooms = []
-            for room_id in room_ids:
-                r = drive["rooms"][room_id]
-                rooms.append(r)
+            for room in rooms:
+                print(room)
+            print("--")
 
             classes = []
             for class_id in class_ids:
@@ -211,17 +215,38 @@ def get_lesson_by_id(id):
     return lesson
 
 
-def get_lesson_element_by_id_and_teacher(lesson_id, teacher):
+def get_lesson_element_by_id_and_teacher(lesson_id, teacher, hour=None, weekday=None):
     print(lesson_id)
+    print(hour, "LEWE", weekday)
     try:
         lesson = get_lesson_by_id(lesson_id)
     except Exception:
         return None
-    for element in lesson.elements:
+    el = None
+    i = 0
+    print(lesson.elements)
+    for i, element in enumerate(lesson.elements):
         print(element.teacher.shortcode)
         if element.teacher.id == teacher.id:
-            return element
-    return None
+            el = element
+            break
+    t = None
+    print(lesson.times)
+    print(weekday)
+    print(hour)
+    for time in lesson.times:
+        print("DAY", time.day, time.hour)
+        if time.day == weekday and time.hour == hour:
+            t = time
+    print(t)
+    room = None
+    if t is not None:
+        room = t.rooms[i]
+
+    if el is not None:
+        return el, room
+    return None, None
+
 
 def parse_lesson_times():
     times = []
diff --git a/biscuit/apps/untis/sub.py b/biscuit/apps/untis/sub.py
index 77884b2..f788618 100644
--- a/biscuit/apps/untis/sub.py
+++ b/biscuit/apps/untis/sub.py
@@ -53,6 +53,7 @@ class Substitution(object):
         self.corridor = None
         self.classes = None
         self.lesson_element = None
+        self.lesson_time = None
 
     def __str__(self):
         if self.filled:
@@ -81,9 +82,11 @@ class Substitution(object):
             if self.teacher_old is not None and self.teacher_new.id == self.teacher_old.id:
                 self.teacher_new = None
 
-        self.lesson_element = get_lesson_element_by_id_and_teacher(self.lesson_id, self.teacher_old)
+        self.lesson_element, self.room_old = get_lesson_element_by_id_and_teacher(self.lesson_id, self.teacher_old,
+                                                                                  self.lesson,
+                                                                                  self.date.weekday() + 1)
         # print(self.lesson)
-
+        print(self.room_old)
         # Subject
         self.subject_old = self.lesson_element.subject if self.lesson_element is not None else None
         if db_obj.subject_idsubst != 0:
@@ -93,9 +96,9 @@ class Substitution(object):
                 self.subject_new = None
 
         # Room
-        self.rooms_old = self.lesson_element.rooms if self.lesson_element is not None else []
-        if len(self.rooms_old) >= 1:
-            self.room_old = self.rooms_old[0]
+        # self.rooms_old = self.lesson_element.rooms if self.lesson_element is not None else []
+        # if len(self.rooms_old) >= 1:
+        #     self.room_old = self.rooms_old[0]
 
         if db_obj.room_idsubst != 0:
             self.room_new = drive["rooms"][db_obj.room_idsubst]
@@ -120,6 +123,7 @@ class Substitution(object):
             self.classes.append(drive["classes"][id])
         print(self.classes)
 
+
 def substitutions_sorter(sub):
     # First, sort by class
     sort_by = "".join(class_.name for class_ in sub.classes)
-- 
GitLab