diff --git a/schoolapps/timetable/pdf.py b/schoolapps/timetable/pdf.py index 811fc9f7977234c71f0f86a9cdad0030c91d610a..281649eaf6f0a1e9d248d95ef63aced117b43203 100644 --- a/schoolapps/timetable/pdf.py +++ b/schoolapps/timetable/pdf.py @@ -8,6 +8,7 @@ from django.utils import formats TEX_HEADER = """\\documentclass[11pt]{article} \\usepackage[ngerman]{babel} +\\usepackage[sfdefault]{cabin} \\usepackage[utf8]{inputenc} \\usepackage[a4paper,left=1cm,right=1cm,top=2cm,bottom=2cm,bindingoffset=0mm]{geometry} @@ -46,10 +47,10 @@ TEX_HEADER = """\\documentclass[11pt]{article} enlarge bottom by=3pt,coltext=white} -\\usepackage{helvet} %Helvetica als Standardschriftart -\\renewcommand{\\familydefault}{\\sfdefault} %Helvetica als Standardschriftart +%\\usepackage{helvet} %Helvetica als Standardschriftart +%\\renewcommand{\\familydefault}{\\sfdefault} %Helvetica als Standardschriftart -\\definecolor{grey}{rgb}{0.95,0.95,0.95} +\\definecolor{grey}{RGB}{208, 208, 208} \\definecolor{darkgrey}{rgb}{0.6,0.6,0.6} \\definecolor{white}{rgb}{1,1,1} \\definecolor{green}{RGB}{76,175,80} @@ -68,15 +69,17 @@ TEX_FOOTER = '\end{document}' TEX_TABLE_HEADER_CLASS = """ \def\\arraystretch{1.5} -\\begin{longtable}{|p{20mm}|p{10mm}|p{32mm}|p{25mm}|p{30mm}|p{35mm}|} -\\hline\n -\\rowcolor{darkgrey} -\\color{white}\\textbf{Klasse} & -\\color{white}\\textbf{Std.} & -\\color{white}\\textbf{Lehrer} & -\\color{white}\\textbf{Fach} & -\\color{white}\\textbf{Raum} & -\\color{white}\\textbf{Hinweis}\\\\\\hline +\\begin{longtable}{p{20mm}p{10mm}p{32mm}p{25mm}p{30mm}p{35mm}} +%\\arrayrulecolor{black} + +%\\hline\n +%\\rowcolor{darkgrey} +\\textbf{Klassen} & +\\textbf{Std.} & +\\textbf{Lehrer} & +\\textbf{Fach} & +\\textbf{Raum} & +\\textbf{Hinweis}\\\\\\hline """ TEX_HEADER_CLASS = """ @@ -157,7 +160,7 @@ def generate_class_tex(subs, date): # Print notice and new line tex_body += color - tex_body += "\\Large\\textit{%s}\\\\\\hline\n" % (sub.text or "") + tex_body += "\\Large\\textit{%s}\\\\\n" % (sub.text or "") # Change background color_background = not color_background diff --git a/schoolapps/untisconnect/parse.py b/schoolapps/untisconnect/parse.py index 73731d8c18c7570e8b78587eb08d91921d05ffe5..482f0e6716b050a0f18face1f4a5d93a4ad23a32 100755 --- a/schoolapps/untisconnect/parse.py +++ b/schoolapps/untisconnect/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/schoolapps/untisconnect/sub.py b/schoolapps/untisconnect/sub.py index 488321e07d47918e248d5fe3071564886b399a36..395c2c5a1687f6ba9189f15c3c7e854d8ea42211 100644 --- a/schoolapps/untisconnect/sub.py +++ b/schoolapps/untisconnect/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] @@ -114,9 +117,11 @@ class Substitution(object): self.classes = [] class_ids = untis_split_first(db_obj.classids, conv=int) - # print(class_ids) + + print(class_ids) for id in class_ids: self.classes.append(drive["classes"][id]) + print(self.classes) def substitutions_sorter(sub): @@ -222,7 +227,7 @@ def generate_sub_table(subs): sub_row.lesson = "{}.".format(sub.lesson) for class_ in sub.classes: - sub_row.classes = class_.name + sub_row.classes += class_.name sub_row.teacher = generate_teacher_row(sub) sub_row.teacher_full = generate_teacher_row(sub, full=True) @@ -247,7 +252,8 @@ def generate_sub_table(subs): def get_substitutions_by_date(date): subs_raw = run_default_filter( - run_using(models.Substitution.objects.filter(date=date_to_untis_date(date)).order_by("classids", "lesson")), + run_using(models.Substitution.objects.filter(date=date_to_untis_date(date), deleted=0).order_by("classids", + "lesson")), filter_term=False) # print(subs_raw)