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