Widget: Fix session handling issue

This commit is contained in:
Raphael Michel
2017-10-29 00:21:51 +02:00
parent 2a7e185d2e
commit d811e42095
2 changed files with 11 additions and 7 deletions

View File

@@ -175,16 +175,20 @@ def get_or_create_cart_id(request):
session_keyname += '_' + 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 != orig_current_id:
request.session[session_keyname] = current_id
return current_id
else:
cart_data = {}
if prefix and 'take_cart_id' in request.GET:
if CartPosition.objects.filter(event=request.event, cart_id=request.GET.get('take_cart_id')).exists():
new_id = request.GET.get('take_cart_id')
else:
new_id = generate_cart_id(prefix=prefix)
if prefix and 'take_cart_id' in request.GET and current_id:
new_id = current_id
else:
new_id = generate_cart_id(prefix=prefix)

View File

@@ -30,7 +30,7 @@ class WaitingView(EventViewMixin, FormView):
return kwargs
def get_context_data(self, **kwargs):
ctx = super().get_context_data()
ctx = super().get_context_data(**kwargs)
ctx['event'] = self.request.event
ctx['subevent'] = self.subevent
ctx['item'], ctx['variation'] = self.item_and_variation