mirror of
https://github.com/pretix/pretix.git
synced 2026-05-09 15:54:03 +00:00
Event list filters: Deal with events without presale start/end
This commit is contained in:
@@ -440,14 +440,25 @@ class SubEventFilterForm(FilterForm):
|
|||||||
).filter(
|
).filter(
|
||||||
Q(presale_start__isnull=True) | Q(presale_start__lte=now())
|
Q(presale_start__isnull=True) | Q(presale_start__lte=now())
|
||||||
).filter(
|
).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':
|
elif fdata.get('status') == 'inactive':
|
||||||
qs = qs.filter(active=False)
|
qs = qs.filter(active=False)
|
||||||
elif fdata.get('status') == 'future':
|
elif fdata.get('status') == 'future':
|
||||||
qs = qs.filter(presale_start__gte=now())
|
qs = qs.filter(presale_start__gte=now())
|
||||||
elif fdata.get('status') == 'past':
|
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'):
|
if fdata.get('weekday'):
|
||||||
qs = qs.annotate(wday=ExtractWeekDay('date_from')).filter(wday=fdata.get('weekday'))
|
qs = qs.annotate(wday=ExtractWeekDay('date_from')).filter(wday=fdata.get('weekday'))
|
||||||
|
|||||||
Reference in New Issue
Block a user