forked from CGM_Public/pretix_original
Make all orders "guest orders"
This commit is contained in:
@@ -1,24 +1,16 @@
|
||||
import json
|
||||
from datetime import timedelta
|
||||
|
||||
from django.contrib import messages
|
||||
from django.contrib.auth.views import redirect_to_login
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.db.models import Q
|
||||
from django.shortcuts import redirect
|
||||
from django.utils.timezone import now
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.views.generic import View
|
||||
|
||||
from pretix.base.models import (
|
||||
CartPosition, EventLock, Item, ItemVariation, Quota,
|
||||
)
|
||||
from pretix.base.services.cart import (
|
||||
CartError, add_items_to_cart, remove_items_from_cart,
|
||||
)
|
||||
from pretix.presale.views import (
|
||||
EventViewMixin, LoginOrGuestRequiredMixin, user_cart_q,
|
||||
)
|
||||
from pretix.presale.views import EventViewMixin
|
||||
|
||||
|
||||
class CartActionMixin:
|
||||
@@ -67,15 +59,14 @@ class CartActionMixin:
|
||||
return items
|
||||
|
||||
|
||||
class CartRemove(EventViewMixin, CartActionMixin, LoginOrGuestRequiredMixin, View):
|
||||
class CartRemove(EventViewMixin, CartActionMixin, View):
|
||||
|
||||
def post(self, *args, **kwargs):
|
||||
items = self._items_from_post_data()
|
||||
if not items:
|
||||
return redirect(self.get_failure_url())
|
||||
|
||||
remove_items_from_cart(self.request.event.identity, items, self.request.user.id,
|
||||
self.request.session.session_key)
|
||||
remove_items_from_cart(self.request.event.identity, items, self.request.session.session_key)
|
||||
messages.success(self.request, _('Your cart has been updated.'))
|
||||
return redirect(self.get_success_url())
|
||||
|
||||
@@ -87,24 +78,11 @@ class CartAdd(EventViewMixin, CartActionMixin, View):
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
items = self._items_from_post_data()
|
||||
|
||||
# We do not use LoginRequiredMixin here, as we want to store stuff into the
|
||||
# session before redirecting to login
|
||||
if not request.user.is_authenticated() and 'guest_email' not in request.session:
|
||||
request.session['cart_tmp'] = json.dumps(items)
|
||||
return redirect_to_login(
|
||||
self.get_success_url(), reverse('presale:event.checkout.login', kwargs={
|
||||
'organizer': request.event.organizer.slug,
|
||||
'event': request.event.slug,
|
||||
}) + '?guest=1', 'next'
|
||||
)
|
||||
|
||||
return self.process(items)
|
||||
|
||||
def process(self, items):
|
||||
try:
|
||||
add_items_to_cart(self.request.event.identity, items, self.request.user.id,
|
||||
self.request.session.session_key)
|
||||
add_items_to_cart(self.request.event.identity, items, self.request.session.session_key)
|
||||
messages.success(self.request, _('The products have been successfully added to your cart.'))
|
||||
return redirect(self.get_success_url())
|
||||
except CartError as e:
|
||||
|
||||
Reference in New Issue
Block a user