From 39f6220d66e58cb032cc8f3180c383f1731d836c Mon Sep 17 00:00:00 2001
From: Dominik George <nik@naturalnet.de>
Date: Sat, 14 Sep 2019 19:48:46 +0200
Subject: [PATCH] Fix determination if lesson is within effective dates.

---
 biscuit/apps/alsijil/views.py | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/biscuit/apps/alsijil/views.py b/biscuit/apps/alsijil/views.py
index 217701cf1..58c5730a2 100644
--- a/biscuit/apps/alsijil/views.py
+++ b/biscuit/apps/alsijil/views.py
@@ -1,8 +1,9 @@
 from collections import OrderedDict
+from datetime import timedelta
 from typing import Optional
 
 from django.contrib.auth.decorators import login_required
-from django.db.models import Count, Exists, OuterRef, Q, Sum
+from django.db.models import Count, Exists, F, OuterRef, Q, Sum
 from django.http import Http404, HttpRequest, HttpResponse
 from django.shortcuts import render
 from django.urls import reverse
@@ -91,9 +92,6 @@ def group_week(request: HttpRequest, year: Optional[int] = None, week: Optional[
     else:
         wanted_week = CalendarWeek()
 
-    week_start = wanted_week[0]
-    week_end = wanted_week[-1]
-
     if request.GET.get('group', None):
         # Use requested group
         group = Group.objects.get(pk=request.GET['group'])
@@ -112,8 +110,8 @@ def group_week(request: HttpRequest, year: Optional[int] = None, week: Optional[
                 week=wanted_week.week
             ))
         ).filter(
-            lesson__date_start__lte=week_start,
-            lesson__date_end__gte=week_end
+            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(
-- 
GitLab