Waiting list: Allow to set auto-disable date (Z#23141338) (#4004)

* Waiting list: Allow to set auto-disable date (Z#23141338)

* ADd warning on non-esries events
This commit is contained in:
Raphael Michel
2024-03-22 11:17:02 +01:00
committed by GitHub
parent a946c10ab4
commit 273c1ae0a6
19 changed files with 109 additions and 14 deletions

View File

@@ -31,7 +31,7 @@
<span class="label label-success">{% trans "Book now" %}</span>
{% endif %}
{% endif %}
{% elif event.settings.waiting_list_enabled and subev.best_availability_state >= 0 %}
{% elif event.waiting_list_active and subev.best_availability_state >= 0 %}
<span class="label label-warning">{% trans "Waiting list" %}</span>
{% elif subev.best_availability_state == 20 %}
<span class="label label-danger">{% trans "Reserved" %}</span>

View File

@@ -25,7 +25,7 @@
{% if event.event.presale_is_running and show_avail %}
{% if event.event.best_availability_state == 100 %}
available {% if event.event.best_availability_is_low %} low {% endif %}
{% elif event.event.settings.waiting_list_enabled and event.event.best_availability_state >= 0 %}
{% elif event.event.waiting_list_active and event.event.best_availability_state >= 0 %}
waitinglist
{% elif event.event.best_availability_state == 20 %}
reserved
@@ -74,7 +74,7 @@
<span class="fa fa-ticket" aria-hidden="true"></span> {% trans "Book now" %}
{% endif %}
{% endif %}
{% elif event.event.settings.waiting_list_enabled and event.event.best_availability_state >= 0 %}
{% elif event.event.waiting_list_active and event.event.best_availability_state >= 0 %}
<span class="fa fa-ticket" aria-hidden="true"></span> {% trans "Waiting list" %}
{% elif event.event.best_availability_state == 20 %}
{% trans "Reserved" %}

View File

@@ -41,7 +41,7 @@
{% if event.event.presale_is_running and show_avail %}
{% if event.event.best_availability_state == 100 %}
available {% if event.event.best_availability_is_low %} low {% endif %}
{% elif event.event.settings.waiting_list_enabled and event.event.best_availability_state >= 0 %}
{% elif event.event.waiting_list_active and event.event.best_availability_state >= 0 %}
waitinglist
{% elif event.event.best_availability_state == 20 %}
reserved
@@ -98,7 +98,7 @@
<span class="fa fa-ticket" aria-hidden="true"></span> {% trans "Book now" %}
{% endif %}
{% endif %}
{% elif event.event.settings.waiting_list_enabled and event.event.best_availability_state >= 0 %}
{% elif event.event.waiting_list_active and event.event.best_availability_state >= 0 %}
<span class="fa fa-ticket" aria-hidden="true"></span> {% trans "Waiting list" %}
{% elif event.event.best_availability_state == 20 %}
<span class="fa fa-ticket" aria-hidden="true"></span> {% trans "Reserved" %}

View File

@@ -13,7 +13,7 @@
{% if event.event.presale_is_running and show_avail %}
{% if event.event.best_availability_state == 100 %}
available {% if event.event.best_availability_is_low %} low {% endif %}
{% elif event.event.settings.waiting_list_enabled and event.event.best_availability_state >= 0 %}
{% elif event.event.waiting_list_active and event.event.best_availability_state >= 0 %}
waitinglist
{% elif event.event.best_availability_state == 20 %}
reserved
@@ -62,7 +62,7 @@
<span class="fa fa-ticket" aria-hidden="true"></span> {% trans "Book now" %}
{% endif %}
{% endif %}
{% elif event.event.settings.waiting_list_enabled and event.event.best_availability_state >= 0 %}
{% elif event.event.waiting_list_active and event.event.best_availability_state >= 0 %}
<span class="fa fa-ticket" aria-hidden="true"></span> {% trans "Waiting list" %}
{% elif event.event.best_availability_state == 20 %}
{% trans "Reserved" %}

View File

@@ -99,7 +99,7 @@
<span class="label label-success">{% trans "Book now" %}</span>
{% endif %}
{% endif %}
{% elif e.settings.waiting_list_enabled and e.best_availability_state >= 0 %}
{% elif e.waiting_list_active and e.best_availability_state >= 0 %}
<span class="label label-warning">{% trans "Waiting list" %}</span>
{% elif e.best_availability_state == 20 %}
<span class="label label-danger">{% trans "Reserved" %}</span>

View File

@@ -153,13 +153,13 @@ def get_grouped_items(event, subevent=None, voucher=None, channel='web', require
Prefetch('quotas',
to_attr='_subevent_quotas',
queryset=event.quotas.using(settings.DATABASE_REPLICA).filter(
subevent=subevent))
subevent=subevent).select_related("subevent"))
).distinct()
)
prefetch_quotas = Prefetch(
'quotas',
to_attr='_subevent_quotas',
queryset=event.quotas.using(settings.DATABASE_REPLICA).filter(subevent=subevent)
queryset=event.quotas.using(settings.DATABASE_REPLICA).filter(subevent=subevent).select_related("subevent")
)
prefetch_bundles = Prefetch(
'bundles',
@@ -548,7 +548,7 @@ class EventIndex(EventViewMixin, EventListMixin, CartMixin, TemplateView):
context['ev'].presale_is_running
)
context['allow_waitinglist'] = self.request.event.settings.waiting_list_enabled and context['ev'].presale_is_running
context['allow_waitinglist'] = context['ev'].waiting_list_active and context['ev'].presale_is_running
if not self.request.event.has_subevents or self.subevent:
# Fetch all items

View File

@@ -118,6 +118,10 @@ class WaitingView(EventViewMixin, FormView):
messages.error(request, pgettext_lazy('subevent', "You need to select a date."))
return redirect(self.get_index_url())
if not (self.subevent or self.request.event).waiting_list_active:
messages.error(request, _("Waiting lists are disabled for this event."))
return redirect(self.get_index_url())
return super().dispatch(request, *args, **kwargs)
def form_valid(self, form):

View File

@@ -390,7 +390,7 @@ class WidgetAPIProductList(EventListMixin, View):
else:
availability['text'] = gettext('Book now')
availability['reason'] = 'ok'
elif event.settings.waiting_list_enabled and (ev.best_availability_state is not None and ev.best_availability_state >= 0):
elif event.waiting_list_active and (ev.best_availability_state is not None and ev.best_availability_state >= 0):
availability['color'] = 'orange'
availability['text'] = gettext('Waiting list')
availability['reason'] = 'waitinglist'
@@ -690,7 +690,7 @@ class WidgetAPIProductList(EventListMixin, View):
'display_net_prices': request.event.settings.display_net_prices,
'use_native_spinners': request.event.settings.widget_use_native_spinners,
'show_variations_expanded': request.event.settings.show_variations_expanded,
'waiting_list_enabled': request.event.settings.waiting_list_enabled,
'waiting_list_enabled': request.event.waiting_list_active,
'voucher_explanation_text': str(rich_text(request.event.settings.voucher_explanation_text, safelinks=False)),
'error': None,
'cart_exists': False
@@ -775,7 +775,7 @@ class WidgetAPIProductList(EventListMixin, View):
data['has_seating_plan'] = ev.seating_plan is not None
data['has_seating_plan_waitinglist'] = False
if request.event.settings.waiting_list_enabled and ev.presale_is_running:
if ev.waiting_list_active and ev.presale_is_running:
for i in items:
if not i.allow_waitinglist or not i.requires_seat:
continue