From de33dc2d784a2cfd072b28be6c4a90cd023c1906 Mon Sep 17 00:00:00 2001 From: Jonathan Weth <git@jonathanweth.de> Date: Sun, 29 Dec 2024 13:13:50 +0100 Subject: [PATCH] Update timetable printing for lesson bundles --- aleksis/apps/lesrooster/managers.py | 3 ++- aleksis/apps/lesrooster/util/build.py | 10 +++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/aleksis/apps/lesrooster/managers.py b/aleksis/apps/lesrooster/managers.py index aa9877d..a4971e9 100644 --- a/aleksis/apps/lesrooster/managers.py +++ b/aleksis/apps/lesrooster/managers.py @@ -1,5 +1,6 @@ +from collections.abc import Iterable from datetime import time -from typing import Iterable, Optional, Union +from typing import Optional, Union from django.db.models import Max, Min, Q, QuerySet from django.db.models.functions import Coalesce diff --git a/aleksis/apps/lesrooster/util/build.py b/aleksis/apps/lesrooster/util/build.py index 41ac058..c7fe29f 100644 --- a/aleksis/apps/lesrooster/util/build.py +++ b/aleksis/apps/lesrooster/util/build.py @@ -25,11 +25,13 @@ def build_timetable( max_slots = len(max_slots) # Get matching lessons - lessons = Lesson.objects.filter(slot_start__time_grid=time_grid).filter_from_type(type_, obj) + lessons = Lesson.objects.filter(bundle__slot_start__time_grid=time_grid).filter_from_type( + type_, obj + ) # Sort lesson periods in a dict for lesson in lessons: - lesson_periods_per_slot[lesson.slot_start].append(lesson) + lesson_periods_per_slot[lesson.bundle.all()[0].slot_start].append(lesson) # Get matching supervisions supervisions = Supervision.objects.filter(break_slot__time_grid=time_grid).filter_from_type( @@ -65,9 +67,7 @@ def build_timetable( col = { "type": "period", "col": ( - lesson_periods_per_slot[actual_slot] - if actual_slot in lesson_periods_per_slot - else [] + lesson_periods_per_slot.get(actual_slot, []) ), } -- GitLab