Event list: Do not include old or inactive subevents in event list (Z#23163541) (#4415)

This commit is contained in:
Raphael Michel
2024-08-28 09:28:35 +02:00
committed by GitHub
parent 02a4ed4be2
commit 54079797d2
2 changed files with 16 additions and 7 deletions
+15 -6
View File
@@ -186,14 +186,23 @@ class EventListMixin:
query = Q(is_public=True) & Q(live=True)
qs = self.request.organizer.events.using(settings.DATABASE_REPLICA).filter(query)
qs = qs.filter(Q(all_sales_channels=True) | Q(limit_sales_channels=self.request.sales_channel))
show_old = "old" in self.request.GET
subevent_filter = Q(subevents__active=True, subevents__is_public=True)
if not show_old:
subevent_filter &= Q(
Q(subevents__date_to__gte=now()) | Q(subevents__date_from__gte=now())
)
qs = qs.annotate(
min_from=Min('subevents__date_from'),
min_to=Min('subevents__date_to'),
max_from=Max('subevents__date_from'),
max_to=Max('subevents__date_to'),
max_fromto=Greatest(Max('subevents__date_to'), Max('subevents__date_from')),
min_from=Min('subevents__date_from', filter=subevent_filter),
min_to=Min('subevents__date_to', filter=subevent_filter),
max_from=Max('subevents__date_from', filter=subevent_filter),
max_to=Max('subevents__date_to', filter=subevent_filter),
max_fromto=Greatest(Max('subevents__date_to', filter=subevent_filter), Max('subevents__date_from', filter=subevent_filter)),
)
if "old" in self.request.GET:
if show_old:
date_q = Q(date_to__lt=now()) | (Q(date_to__isnull=True) & Q(date_from__lt=now()))
qs = qs.filter(
Q(Q(has_subevents=False) & date_q) | Q(
+1 -1
View File
@@ -773,7 +773,7 @@ class WidgetCartTest(CartTestMixin, TestCase):
'poweredby': '<a href="https://pretix.eu" target="_blank" rel="noopener">ticketing powered by pretix</a>',
'events': [
{'availability': {'color': 'none', 'text': 'Event series'},
'date_range': 'Dec. 29, 2018 Jan. 4, 2019',
'date_range': 'Jan. 1st 4th, 2019',
'event_url': 'http://example.com/ccc/30c3/',
'location': '',
'name': '30C3'},