From 9b4f10c1c0a5dd0773be4dfa0c07cd9a6737e798 Mon Sep 17 00:00:00 2001 From: Jean-Marie Favreau Date: Sun, 2 Feb 2025 20:14:16 +0100 Subject: [PATCH] =?UTF-8?q?On=20optimise=20la=20requ=C3=AAte?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit on avait pleeein d'événements non récurrents mais récupérés comme tels --- src/agenda_culturel/calendar.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/agenda_culturel/calendar.py b/src/agenda_culturel/calendar.py index 8248c79..1804b52 100644 --- a/src/agenda_culturel/calendar.py +++ b/src/agenda_culturel/calendar.py @@ -256,15 +256,19 @@ class CalendarList: startdatetime = timezone.make_aware(datetime.combine(self.c_firstdate, time.min), timezone.get_default_timezone()) lastdatetime = timezone.make_aware(datetime.combine(self.c_lastdate, time.max), timezone.get_default_timezone()) qs = qs.filter( - (Q(recurrence_dtend__isnull=True) & Q(recurrence_dtstart__lte=lastdatetime)) - | ( - Q(recurrence_dtend__isnull=False) - & ~( - Q(recurrence_dtstart__gt=lastdatetime) - | Q(recurrence_dtend__lt=startdatetime) + (Q(recurrences__isnull=False) & + (Q(recurrence_dtend__isnull=True) & Q(recurrence_dtstart__isnull=False) & Q(recurrence_dtstart__lte=lastdatetime)) + | ( + Q(recurrence_dtend__isnull=False) + & ~( + Q(recurrence_dtstart__gt=lastdatetime) + | Q(recurrence_dtend__lt=startdatetime) + ) ) ) - | (Q(start_day__lte=self.c_lastdate) & ((Q(end_day__isnull=True) & Q(start_day__gte=self.c_firstdate)) | Q(end_day__gte=self.c_firstdate))) + | (Q(start_day__lte=self.c_lastdate) & # start before the end of the desired period + ((Q(end_day__isnull=True) & Q(start_day__gte=self.c_firstdate)) # end after the begining of desired period + | (Q(end_day__isnull=False) & Q(end_day__gte=self.c_firstdate)))) ).filter( Q(other_versions__isnull=True) | Q(other_versions__representative=F('pk')) |