mirror of
https://github.com/pretix/pretix.git
synced 2026-05-06 15:24:02 +00:00
Hide voucher redemption if the sale period is over
This commit is contained in:
@@ -466,15 +466,18 @@ class EventIndex(EventViewMixin, EventListMixin, CartMixin, TemplateView):
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
|
||||
context['ev'] = self.subevent or self.request.event
|
||||
context['subevent'] = self.subevent
|
||||
|
||||
# Show voucher option if an event is selected and vouchers exist
|
||||
vouchers_exist = self.request.event.cache.get('vouchers_exist')
|
||||
if vouchers_exist is None:
|
||||
vouchers_exist = self.request.event.vouchers.exists()
|
||||
self.request.event.cache.set('vouchers_exist', vouchers_exist)
|
||||
context['show_vouchers'] = context['vouchers_exist'] = vouchers_exist
|
||||
|
||||
context['ev'] = self.subevent or self.request.event
|
||||
context['subevent'] = self.subevent
|
||||
context['show_vouchers'] = context['vouchers_exist'] = vouchers_exist and (
|
||||
(self.request.event.has_subevents and not self.subevent) or
|
||||
context['ev'].presale_is_running
|
||||
)
|
||||
|
||||
context['allow_waitinglist'] = self.request.event.settings.waiting_list_enabled and context['ev'].presale_is_running
|
||||
|
||||
|
||||
@@ -690,7 +690,14 @@ class WidgetAPIProductList(EventListMixin, View):
|
||||
data['date_range'] = self._get_date_range(ev, request.event)
|
||||
fail = False
|
||||
|
||||
vouchers_exist = self.request.event.get_cache().get('vouchers_exist')
|
||||
if vouchers_exist is None:
|
||||
vouchers_exist = self.request.event.vouchers.exists()
|
||||
self.request.event.get_cache().set('vouchers_exist', vouchers_exist)
|
||||
data['vouchers_exist'] = vouchers_exist
|
||||
|
||||
if not ev.presale_is_running:
|
||||
data['vouchers_exist'] = False
|
||||
if ev.presale_has_ended:
|
||||
if request.event.settings.presale_has_ended_text:
|
||||
data['error'] = str(request.event.settings.presale_has_ended_text)
|
||||
@@ -742,6 +749,7 @@ class WidgetAPIProductList(EventListMixin, View):
|
||||
data['items_by_category'] = []
|
||||
data['display_add_to_cart'] = False
|
||||
data['itemnum'] = 0
|
||||
data['vouchers_exist'] = False
|
||||
|
||||
data['has_seating_plan'] = ev.seating_plan is not None
|
||||
data['has_seating_plan_waitinglist'] = False
|
||||
@@ -760,12 +768,6 @@ class WidgetAPIProductList(EventListMixin, View):
|
||||
data['has_seating_plan_waitinglist'] = True
|
||||
break
|
||||
|
||||
vouchers_exist = self.request.event.get_cache().get('vouchers_exist')
|
||||
if vouchers_exist is None:
|
||||
vouchers_exist = self.request.event.vouchers.exists()
|
||||
self.request.event.get_cache().set('vouchers_exist', vouchers_exist)
|
||||
data['vouchers_exist'] = vouchers_exist
|
||||
|
||||
if "cart_id" not in request.GET:
|
||||
cache.set(cache_key, data, 10)
|
||||
# These pages are cached for a really short duration – this should make them pretty accurate with
|
||||
|
||||
@@ -487,7 +487,7 @@ class WidgetCartTest(CartTestMixin, TestCase):
|
||||
"use_native_spinners": False,
|
||||
"has_seating_plan": False,
|
||||
"has_seating_plan_waitinglist": False,
|
||||
"vouchers_exist": True,
|
||||
"vouchers_exist": False,
|
||||
"waiting_list_enabled": False,
|
||||
"error": "This voucher is expired.",
|
||||
"items_by_category": [],
|
||||
|
||||
Reference in New Issue
Block a user