Basic tests for cart features

This commit is contained in:
Raphael Michel
2015-02-20 01:14:23 +01:00
parent 4da23d33b5
commit 504081cce3
4 changed files with 68 additions and 11 deletions

View File

@@ -100,7 +100,7 @@ class CartAdd(EventViewMixin, CartActionMixin, View):
(request.user.event is None or request.user.event == request.event):
request.session['cart_tmp'] = json.dumps(items)
return redirect_to_login(
request.path, reverse('presale:event.checkout.login', kwargs={
self.get_success_url(), reverse('presale:event.checkout.login', kwargs={
'organizer': request.event.organizer.slug,
'event': request.event.slug,
}), 'next'
@@ -239,8 +239,4 @@ class CartAdd(EventViewMixin, CartActionMixin, View):
return redirect(self.get_success_url())
def get(self, request, *args, **kwargs):
if 'cart_tmp' in request.session and request.user.is_authenticated():
items = json.loads(request.session['cart_tmp'])
del request.session['cart_tmp']
return self.process(items)
return redirect(self.get_failure_url())

View File

@@ -1,3 +1,4 @@
import json
from django.contrib.auth import authenticate
from django.core.urlresolvers import reverse
from django.core.validators import RegexValidator
@@ -13,6 +14,7 @@ from django.conf import settings
from pretix.base.models import User
from pretix.presale.views import EventViewMixin, CartDisplayMixin
from pretix.presale.views.cart import CartAdd
class EventIndex(EventViewMixin, CartDisplayMixin, TemplateView):
@@ -205,6 +207,12 @@ class EventLogin(EventViewMixin, TemplateView):
template_name = 'pretixpresale/event/login.html'
def redirect_to_next(self):
if 'cart_tmp' in self.request.session and self.request.user.is_authenticated():
items = json.loads(self.request.session['cart_tmp'])
del self.request.session['cart_tmp']
ca = CartAdd()
ca.request = self.request
return ca.process(items)
if 'next' in self.request.GET:
return redirect(self.request.GET.get('next'))
else: