Make all orders "guest orders"

This commit is contained in:
Raphael Michel
2015-10-04 15:05:05 +02:00
parent c47008cc18
commit 93d027cec6
40 changed files with 296 additions and 1264 deletions

View File

@@ -22,20 +22,7 @@ def login_required(view_func):
'event': request.event.slug,
}), 'next'
)
return _wrapped_view
def login_or_guest_required(view_func):
def _wrapped_view(request, *args, **kwargs):
if request.user.is_authenticated() or 'guest_email' in request.session:
return view_func(request, *args, **kwargs)
path = request.path
return redirect_to_login(
path, reverse('presale:event.checkout.login', kwargs={
'organizer': request.event.organizer.slug,
'event': request.event.slug,
}) + '?guest=1', 'next'
)
return _wrapped_view
@@ -46,28 +33,14 @@ class LoginRequiredMixin:
return login_required(view)
class LoginOrGuestRequiredMixin:
@classmethod
def as_view(cls, **initkwargs):
view = super().as_view(**initkwargs)
return login_or_guest_required(view)
def user_cart_q(request):
if request.user.is_authenticated():
return Q(Q(user=request.user) | Q(session=request.session.session_key))
return Q(Q(user__isnull=True) & Q(session=request.session.session_key))
class CartDisplayMixin:
@cached_property
def positions(self):
"""
A list of this users cart position
"""
return list(CartPosition.objects.current.filter(
user_cart_q(self.request) & Q(event=self.request.event)
session=self.request.session.session_key, event=self.request.event
).order_by(
'item', 'variation'
).select_related(
@@ -79,7 +52,7 @@ class CartDisplayMixin:
def get_cart(self, answers=False, queryset=None, payment_fee=None):
queryset = queryset or CartPosition.objects.current.filter(
user_cart_q(self.request) & Q(event=self.request.event)
session=self.request.session.session_key, event=self.request.event
)
prefetch = ['variation__values', 'variation__values__prop']