From 6e531ee067873706add6716da80bfbb6d0d1fe33 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Wed, 5 Feb 2020 10:28:52 +0100 Subject: [PATCH] Event list filters: Deal with events without presale start/end --- src/pretix/control/forms/filter.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/pretix/control/forms/filter.py b/src/pretix/control/forms/filter.py index 2616cf76e..7a1b74641 100644 --- a/src/pretix/control/forms/filter.py +++ b/src/pretix/control/forms/filter.py @@ -440,14 +440,25 @@ class SubEventFilterForm(FilterForm): ).filter( Q(presale_start__isnull=True) | Q(presale_start__lte=now()) ).filter( - Q(presale_end__isnull=True) | Q(presale_end__gte=now()) + Q(Q(presale_end__isnull=True) & Q( + Q(date_to__gte=now()) | + Q(date_to__isnull=True, date_from__gte=now()) + )) | + Q(presale_end__gte=now()) ) elif fdata.get('status') == 'inactive': qs = qs.filter(active=False) elif fdata.get('status') == 'future': qs = qs.filter(presale_start__gte=now()) elif fdata.get('status') == 'past': - qs = qs.filter(presale_end__lte=now()) + qs = qs.filter( + Q(presale_end__lte=now()) | Q( + Q(presale_end__isnull=True) & Q( + Q(date_to__lte=now()) | + Q(date_to__isnull=True, date_from__gte=now()) + ) + ) + ) if fdata.get('weekday'): qs = qs.annotate(wday=ExtractWeekDay('date_from')).filter(wday=fdata.get('weekday'))