diff --git a/src/pretix/presale/templates/pretixpresale/event/fragment_availability.html b/src/pretix/presale/templates/pretixpresale/event/fragment_availability.html index 6a8207815f..5e97dd4292 100644 --- a/src/pretix/presale/templates/pretixpresale/event/fragment_availability.html +++ b/src/pretix/presale/templates/pretixpresale/event/fragment_availability.html @@ -7,7 +7,7 @@ {% else %} {% trans "SOLD OUT" %} {% endif %} - {% if event.settings.waiting_list_enabled and item.allow_waitinglist %} + {% if allow_waitinglist and item.allow_waitinglist %}
@@ -20,7 +20,7 @@ {% trans "Reserved" %}
{% trans "All remaining products are reserved but might become available again." %} - {% if event.settings.waiting_list_enabled and item.allow_waitinglist %} + {% if allow_waitinglist and item.allow_waitinglist %}
diff --git a/src/pretix/presale/views/event.py b/src/pretix/presale/views/event.py index d942b03ccd..5a7f3ef2b7 100644 --- a/src/pretix/presale/views/event.py +++ b/src/pretix/presale/views/event.py @@ -439,7 +439,8 @@ class EventIndex(EventViewMixin, EventListMixin, CartMixin, TemplateView): context['ev'] = self.subevent or self.request.event context['subevent'] = self.subevent context['cart'] = self.get_cart() - context['has_addon_choices'] = any(cp.has_addon_choices for cp in get_cart(self.request))\ + context['has_addon_choices'] = any(cp.has_addon_choices for cp in get_cart(self.request)) + context['allow_waitinglist'] = self.request.event.settings.waiting_list_enabled and context['ev'].presale_is_running if self.subevent: context['frontpage_text'] = str(self.subevent.frontpage_text) diff --git a/src/pretix/presale/views/waiting.py b/src/pretix/presale/views/waiting.py index 28d027c552..9d91ce72f3 100644 --- a/src/pretix/presale/views/waiting.py +++ b/src/pretix/presale/views/waiting.py @@ -98,6 +98,14 @@ class WaitingView(EventViewMixin, FormView): messages.error(request, _("Waiting lists are disabled for this event.")) return redirect(self.get_index_url()) + if self.request.event.presale_has_ended: + messages.error(request, _("The presale period for this event is over.")) + return redirect(self.get_index_url()) + + if not self.request.event.presale_is_running: + messages.error(request, _("The presale for this event has not yet started.")) + return redirect(self.get_index_url()) + if not self.item_and_variation: messages.error(request, _("We could not identify the product you selected.")) return redirect(self.get_index_url())