Fixed an error in cart processing

This commit is contained in:
Raphael Michel
2015-06-29 15:03:55 +02:00
parent 44beb8e84a
commit e75a0e4856

View File

@@ -107,10 +107,6 @@ class CartAdd(EventViewMixin, CartActionMixin, View):
return redirect(self.get_failure_url())
self.items = self._items_from_post_data()
self._expired = self._re_add_expired_positions()
if not self.items:
return redirect(self.get_failure_url())
# We do not use EventLoginRequiredMixin here, as we want to store stuff into the
# session before redirecting to login
@@ -159,15 +155,23 @@ class CartAdd(EventViewMixin, CartActionMixin, View):
Q(user=self.request.user) & Q(event=self.request.event) & Q(expires__gt=now())
).update(expires=expiry)
def _delete_expired(self, expired):
for cp in expired:
def _delete_expired(self):
for cp in self._expired:
if cp.version_end_date is None:
cp.delete()
def _initial_checks(self):
self._expired = self._re_add_expired_positions()
if not self.items:
return redirect(self.get_failure_url())
def process(self):
expiry = now() + timedelta(minutes=self.request.event.settings.get('reservation_time', as_type=int))
self._extend_existing(expiry)
self._initial_checks()
# Fetch items from the database
items_cache = {
i.identity: i for i
@@ -252,7 +256,7 @@ class CartAdd(EventViewMixin, CartActionMixin, View):
for quota in quotas:
quota.release()
self._delete_expired(self._expired)
self._delete_expired()
if not self.msg_some_unavailable:
messages.success(self.request, _('The products have been successfully added to your cart.'))