From 0545fda71de4bc6c7e648c962420e75cfb1cb3a4 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 22 Sep 2026 08:43:47 +0200 Subject: [PATCH] first step --- src/pretix/base/models/items.py | 2 - src/pretix/base/services/cart.py | 4 +- src/pretix/base/services/cross_selling.py | 4 +- src/pretix/control/forms/item.py | 1 - .../templates/pretixpresale/event/index.html | 115 +++++++++--------- src/pretix/presale/views/event.py | 85 +++++++------ 6 files changed, 102 insertions(+), 109 deletions(-) diff --git a/src/pretix/base/models/items.py b/src/pretix/base/models/items.py index 6d4a5291ad..7aa035970a 100644 --- a/src/pretix/base/models/items.py +++ b/src/pretix/base/models/items.py @@ -913,8 +913,6 @@ class Item(LoggedModel): :raises ValueError: if you call this on an item which has variations associated with it. Please use the method on the ItemVariation object you are interested in. """ - if not trust_parameters and not subevent and self.event.has_subevents: - raise TypeError('You need to supply a subevent.') check_quotas = self._get_quotas(ignored_quotas=ignored_quotas, subevent=subevent) quotacounter = Counter() res = Quota.AVAILABILITY_OK, None diff --git a/src/pretix/base/services/cart.py b/src/pretix/base/services/cart.py index 9e1c2e45fc..a59735daf2 100644 --- a/src/pretix/base/services/cart.py +++ b/src/pretix/base/services/cart.py @@ -793,9 +793,7 @@ class CartManager: operations = [] for i in items: - if self.event.has_subevents: - if not i.get('subevent') or int(i.get('subevent')) not in self._subevents_cache: - raise CartError(error_messages['subevent_required']) + if self.event.has_subevents and i.get('subevents'): subevent = self._subevents_cache[int(i.get('subevent'))] else: subevent = None diff --git a/src/pretix/base/services/cross_selling.py b/src/pretix/base/services/cross_selling.py index 3166747158..ea3cada949 100644 --- a/src/pretix/base/services/cross_selling.py +++ b/src/pretix/base/services/cross_selling.py @@ -58,9 +58,9 @@ class CrossSellingService: result = ( (DummyCategory(category, subevent), self._prepare_items(subevent, items_qs, discount_info), - f'subevent_{subevent.pk}_') + f'subevent_{subevent.pk}_' if subevent else '') for subevent in subevents - for (category, items_qs, discount_info) in self._applicable_categories(subevent.pk) + for (category, items_qs, discount_info) in self._applicable_categories(subevent.pk if subevent else 0) ) else: result = ( diff --git a/src/pretix/control/forms/item.py b/src/pretix/control/forms/item.py index b90592ffbd..b0a37b14e9 100644 --- a/src/pretix/control/forms/item.py +++ b/src/pretix/control/forms/item.py @@ -342,7 +342,6 @@ class QuotaForm(I18nModelForm): } ) self.fields['subevent'].widget.choices = self.fields['subevent'].choices - self.fields['subevent'].required = True else: del self.fields['subevent'] diff --git a/src/pretix/presale/templates/pretixpresale/event/index.html b/src/pretix/presale/templates/pretixpresale/event/index.html index 633f3c90bb..de43c5ddfa 100644 --- a/src/pretix/presale/templates/pretixpresale/event/index.html +++ b/src/pretix/presale/templates/pretixpresale/event/index.html @@ -185,69 +185,68 @@ {% eventsignal event "pretix.presale.signals.front_page_top" request=request subevent=subevent %} {% endif %} - - {% if ev.presale_is_running or event.settings.show_items_outside_presale_period %} -
- {% csrf_token %} - - {% if ev.seating_plan_id and event.settings.seating_choice %} - {% if event.has_subevents %} - {% eventsignal event "pretix.presale.signals.render_seating_plan" request=request subevent=subevent %} - {% else %} - {% eventsignal event "pretix.presale.signals.render_seating_plan" request=request %} - {% endif %} + {% endif %} + {% if ev.presale_is_running or event.settings.show_items_outside_presale_period %} + + {% csrf_token %} + + {% if ev.seating_plan_id and event.settings.seating_choice %} + {% if event.has_subevents %} + {% eventsignal event "pretix.presale.signals.render_seating_plan" request=request subevent=subevent %} + {% else %} + {% eventsignal event "pretix.presale.signals.render_seating_plan" request=request %} {% endif %} + {% endif %} - {% if waitinglist_seated %} -
+ {% endif %} + +

{% trans "Products" %}

+ {% include "pretixpresale/event/fragment_product_list.html" %} + {% if ev.presale_is_running and display_add_to_cart %} +
+
+
+ +
+
+
+
+ {% endif %} + {% endif %} {% if show_vouchers %}