Commit f08685d2 authored by MOREAU Ulysse's avatar MOREAU Ulysse
Browse files

Delete illegal products from basket

parent 22f0e658
......@@ -308,6 +308,18 @@ class OrderEditView(LoginRequiredMixin, UpdateView):
def get_object(self) -> Order: # type: ignore[override] # override not supported
return self.model.objects.get_current_order(self.request.user)
def setup(self, request, *args, **kwargs):
""" Delete illegal objects prior to display
"""
super().setup(request, *args, **kwargs)
failed = False
for orderitem in self.get_object().items.all():
if orderitem.item.hidden or orderitem.item.end_date < timezone.now():
orderitem.delete()
failed = True
if failed:
messages.error(self.request, "Certains objets sont périmés ou ont été cachés par un administrateur. Ils ont été supprimé du panier.")
def get_form_class(self) -> Type[BaseInlineFormSet]: # type: ignore[override] # override not supported
return inlineformset_factory(
self.model,
......@@ -374,7 +386,17 @@ class OrderSendView(LoginRequiredMixin, RedirectView, SingleObjectMixin):
def get_redirect_url(self, *args, **kwargs) -> str:
self.order = self.get_object()
if self.order.items.count() < 1:
# Check if all items are legal
failed = False
for orderitem in self.order.items.all():
if orderitem.item.hidden or orderitem.item.end_date < timezone.now():
orderitem.delete()
failed = True
if failed:
messages.error(self.request, "Certains objets sont périmés ou ont été cachés par un administrateur. Ils ont été supprimé du panier, et la commande n'a pas été passée.")
return reverse("boutique:order_edit")
elif self.order.items.count() < 1:
messages.error(self.request, "Vous ne pouvez pas faire une commande vide")
return reverse("boutique:order_edit")
else:
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment