diff --git a/biscuit/apps/chronos/views.py b/biscuit/apps/chronos/views.py index 08313d684721d51c5708cfcce5cecb8ca06630a5..9c0ef206c5f8c52ca73ecf9ebf7d8e7b956e98e0 100644 --- a/biscuit/apps/chronos/views.py +++ b/biscuit/apps/chronos/views.py @@ -3,7 +3,7 @@ from collections import OrderedDict from typing import Optional from django.contrib.auth.decorators import login_required -from django.db.models import Max, Min, Q +from django.db.models import F, Max, Min, Q from django.http import HttpRequest, HttpResponse from django.shortcuts import get_object_or_404, redirect, render from django.views.decorators.cache import cache_page @@ -31,8 +31,8 @@ def timetable(request: HttpRequest, year: Optional[int] = None, week: Optional[i wanted_week = CalendarWeek() lesson_periods = LessonPeriod.objects.filter( - lesson__date_start__lte=wanted_week[0], - lesson__date_end__gte=wanted_week[-1] + lesson__date_start__lte=wanted_week[0] + timedelta(days=1) * F('lesson__weekday') - 1, + lesson__date_end__gte=wanted_week[0] + timedelta(days=1) * F('lesson__weekday') - 1 ).select_related( 'lesson', 'lesson__subject', 'period', 'room' ).prefetch_related(