From 3e335bcbfe135382a933fa4e7b25d99cb2b0fad2 Mon Sep 17 00:00:00 2001 From: Phin Wolkwitz Date: Wed, 7 May 2025 13:36:50 +0200 Subject: [PATCH] Presale: Hide subevent lists if subevents exist but none are visible (Z#23186153) (#5054) * Hide subevent lists (but not calendars) if subevents exist but none are visible, to avoid confusion during checkout --- .../templates/pretixpresale/event/index.html | 64 ++++++++++--------- src/pretix/presale/views/event.py | 1 + 2 files changed, 34 insertions(+), 31 deletions(-) diff --git a/src/pretix/presale/templates/pretixpresale/event/index.html b/src/pretix/presale/templates/pretixpresale/event/index.html index 2f658909c..7eb966a92 100644 --- a/src/pretix/presale/templates/pretixpresale/event/index.html +++ b/src/pretix/presale/templates/pretixpresale/event/index.html @@ -71,14 +71,15 @@ {% endif %} - {% if subevent_list_foldable %} -
- - {% else %} -
-
- {% endif %} -

+ {% if subevent_list.list_type != "list" or subevent_list.visible_events %} + {% if subevent_list_foldable %} +
+ + {% else %} +
+
+ {% endif %} +

{% if subevent_list_foldable %} {% if show_cart %} {% trans "Add tickets for a different date" %} @@ -88,35 +89,36 @@ {% else %} {% trans "Choose date to book a ticket" %} {% endif %} -

- {% if subevent_list_foldable %} -
-
- {% else %} -
- {% endif %} +

+ {% if subevent_list_foldable %} +
+
+ {% else %} +
+ {% endif %} {% if filter_form.fields %}
{% include "pretixpresale/fragment_event_list_filter.html" with request=request %}
{% endif %} -
- {% cache_large 15 subevent_list subevent_list_cache_key %} - {% if subevent_list.list_type == "calendar" %} - {% include "pretixpresale/event/fragment_subevent_calendar.html" %} - {% elif subevent_list.list_type == "week" %} - {% include "pretixpresale/event/fragment_subevent_calendar_week.html" %} - {% else %} - {% include "pretixpresale/event/fragment_subevent_list.html" %} - {% endif %} - {% endcache_large %} -
- {% if subevent_list_foldable %} +
+ {% cache_large 15 subevent_list subevent_list_cache_key %} + {% if subevent_list.list_type == "calendar" %} + {% include "pretixpresale/event/fragment_subevent_calendar.html" %} + {% elif subevent_list.list_type == "week" %} + {% include "pretixpresale/event/fragment_subevent_calendar_week.html" %} + {% else %} + {% include "pretixpresale/event/fragment_subevent_list.html" %} + {% endif %} + {% endcache_large %}
-
- {% else %} - - {% endif %} + {% if subevent_list_foldable %} + + + {% else %} + + {% endif %} + {% endif %} {% if subevent %}

{{ subevent.name }}

diff --git a/src/pretix/presale/views/event.py b/src/pretix/presale/views/event.py index ac6b9055d..da4640cd0 100644 --- a/src/pretix/presale/views/event.py +++ b/src/pretix/presale/views/event.py @@ -815,6 +815,7 @@ class EventIndex(EventViewMixin, EventListMixin, CartMixin, TemplateView): se for se in context['subevent_list'] if not se.presale_has_ended and (se.best_availability_state is None or se.best_availability_state >= Quota.AVAILABILITY_RESERVED) ] + context['visible_events'] = len(context['subevent_list']) > 0 return context