From 880c22eef927d8e647b0979760a99b3a6bddc0a8 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Sat, 10 Mar 2018 14:18:40 +0100 Subject: [PATCH] Prevent cart ID creation in widget --- src/pretix/presale/views/widget.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/pretix/presale/views/widget.py b/src/pretix/presale/views/widget.py index cd8e0076ae..5b61ebc52a 100644 --- a/src/pretix/presale/views/widget.py +++ b/src/pretix/presale/views/widget.py @@ -246,10 +246,16 @@ class WidgetAPIProductList(View): data['error'] = error_messages['voucher_expired'] fail = True - redeemed_in_carts = CartPosition.objects.filter( - Q(voucher=self.voucher) & Q(event=request.event) & - (Q(expires__gte=now()) | Q(cart_id=get_or_create_cart_id(request))) - ) + cart_id = get_or_create_cart_id(request, create=False) + if cart_id: + redeemed_in_carts = CartPosition.objects.filter( + Q(voucher=self.voucher) & Q(event=request.event) & + (Q(expires__gte=now()) | Q(cart_id=get_or_create_cart_id(request))) + ) + else: + redeemed_in_carts = CartPosition.objects.filter( + Q(voucher=self.voucher) & Q(event=request.event) & Q(expires__gte=now()) + ) v_avail = self.voucher.max_usages - self.voucher.redeemed - redeemed_in_carts.count() if v_avail < 1: