forked from CGM_Public/pretix_original
Widget: Fix session handling issue
This commit is contained in:
@@ -175,16 +175,20 @@ def get_or_create_cart_id(request):
|
|||||||
session_keyname += '_' + request.resolver_match.kwargs.get('cart_namespace')
|
session_keyname += '_' + request.resolver_match.kwargs.get('cart_namespace')
|
||||||
prefix = request.resolver_match.kwargs.get('cart_namespace')
|
prefix = request.resolver_match.kwargs.get('cart_namespace')
|
||||||
|
|
||||||
current_id = request.session.get(session_keyname)
|
current_id = orig_current_id = request.session.get(session_keyname)
|
||||||
|
if prefix and 'take_cart_id' in request.GET:
|
||||||
|
pos = CartPosition.objects.filter(event=request.event, cart_id=request.GET.get('take_cart_id'))
|
||||||
|
if request.method == "POST" or pos.exists():
|
||||||
|
current_id = request.GET.get('take_cart_id')
|
||||||
|
|
||||||
if current_id and current_id in request.session.get('carts', {}):
|
if current_id and current_id in request.session.get('carts', {}):
|
||||||
|
if current_id != orig_current_id:
|
||||||
|
request.session[session_keyname] = current_id
|
||||||
return current_id
|
return current_id
|
||||||
else:
|
else:
|
||||||
cart_data = {}
|
cart_data = {}
|
||||||
if prefix and 'take_cart_id' in request.GET:
|
if prefix and 'take_cart_id' in request.GET and current_id:
|
||||||
if CartPosition.objects.filter(event=request.event, cart_id=request.GET.get('take_cart_id')).exists():
|
new_id = current_id
|
||||||
new_id = request.GET.get('take_cart_id')
|
|
||||||
else:
|
|
||||||
new_id = generate_cart_id(prefix=prefix)
|
|
||||||
else:
|
else:
|
||||||
new_id = generate_cart_id(prefix=prefix)
|
new_id = generate_cart_id(prefix=prefix)
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ class WaitingView(EventViewMixin, FormView):
|
|||||||
return kwargs
|
return kwargs
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
ctx = super().get_context_data()
|
ctx = super().get_context_data(**kwargs)
|
||||||
ctx['event'] = self.request.event
|
ctx['event'] = self.request.event
|
||||||
ctx['subevent'] = self.subevent
|
ctx['subevent'] = self.subevent
|
||||||
ctx['item'], ctx['variation'] = self.item_and_variation
|
ctx['item'], ctx['variation'] = self.item_and_variation
|
||||||
|
|||||||
Reference in New Issue
Block a user