From 372e663e846c6e34e5f1ca77ae36fbfb2f663a75 Mon Sep 17 00:00:00 2001
From: Konrad Mohrfeldt <konrad.mohrfeldt@farbdev.org>
Date: Wed, 31 Jul 2024 12:19:05 +0200
Subject: [PATCH] =?UTF-8?q?refactor:=20don=E2=80=99t=20overwrite=20queryse?=
 =?UTF-8?q?t=20with=20filter=20options?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

We might need that queryset unbothered by already set filters later on
;)
---
 program/services.py | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/program/services.py b/program/services.py
index 255d1b45..baba59fa 100644
--- a/program/services.py
+++ b/program/services.py
@@ -745,13 +745,15 @@ def generate_program_entries(
         start = timezone.now()
     if end is None:
         end = start + timedelta(days=1)
+
+    queryset = queryset.order_by("start")
     # Find all timeslots that
     #   * have started before the specified start value but end after it
     #   * or end after the specified end value but start before it
-    queryset = queryset.filter(end__gt=start, start__lt=end).order_by("start")
+    timeslots = queryset.filter(end__gt=start, start__lt=end)
 
     if not include_virtual:
-        yield from (create_timeslot_entry(timeslot) for timeslot in queryset)
+        yield from (create_timeslot_entry(timeslot) for timeslot in timeslots)
         return
 
     # Program entries that are not based on scheduled timeslots are generated using the fallback
@@ -760,7 +762,7 @@ def generate_program_entries(
 
     entry_start = start
     timeslot: TimeSlot
-    for timeslot in queryset:
+    for timeslot in timeslots:
         if timeslot.start > entry_start:
             yield create_entry(entry_start, timeslot.start, fallback_show)
         yield create_timeslot_entry(timeslot)
-- 
GitLab