forked from CGM_Public/pretix_original
Add setting to hide sold-out timeslots
This commit is contained in:
@@ -503,6 +503,11 @@ class EventIndex(EventViewMixin, EventListMixin, CartMixin, TemplateView):
|
||||
context['subevent_list'] = self.request.event.subevents_sorted(
|
||||
filter_qs_by_attr(self.request.event.subevents_annotated(self.request.sales_channel.identifier).using(settings.DATABASE_REPLICA), self.request)
|
||||
)
|
||||
if self.request.event.settings.event_list_available_only:
|
||||
context['subevent_list'] = [
|
||||
se for se in context['subevent_list']
|
||||
if not se.presale_has_ended and se.best_availability_state >= Quota.AVAILABILITY_RESERVED
|
||||
]
|
||||
return context
|
||||
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ from pytz import UTC
|
||||
|
||||
from pretix.base.i18n import language
|
||||
from pretix.base.models import (
|
||||
Event, EventMetaValue, SubEvent, SubEventMetaValue,
|
||||
Event, EventMetaValue, SubEvent, SubEventMetaValue, Quota,
|
||||
)
|
||||
from pretix.base.services.quotas import QuotaAvailability
|
||||
from pretix.helpers.compat import date_fromisocalendar
|
||||
@@ -386,6 +386,11 @@ def add_subevents_for_days(qs, before, after, ebd, timezones, event=None, cart_n
|
||||
kwargs['cart_namespace'] = cart_namespace
|
||||
|
||||
s = event.settings if event else se.event.settings
|
||||
|
||||
if s.event_list_available_only:
|
||||
if se.presale_has_ended or se.best_availability_state < Quota.AVAILABILITY_RESERVED:
|
||||
continue
|
||||
|
||||
timezones.add(s.timezones)
|
||||
tz = pytz.timezone(s.timezone)
|
||||
datetime_from = se.date_from.astimezone(tz)
|
||||
|
||||
@@ -513,6 +513,12 @@ class WidgetAPIProductList(EventListMixin, View):
|
||||
filter_qs_by_attr(self.request.event.subevents_annotated(self.request.sales_channel.identifier), self.request)
|
||||
)
|
||||
tz = pytz.timezone(request.event.settings.timezone)
|
||||
if self.request.event.settings.event_list_available_only:
|
||||
evs = [
|
||||
se for se in evs
|
||||
if not se.presale_has_ended and se.best_availability_state >= Quota.AVAILABILITY_RESERVED
|
||||
]
|
||||
|
||||
data['events'] = [
|
||||
{
|
||||
'name': str(ev.name),
|
||||
|
||||
Reference in New Issue
Block a user