From 09e8fca1329515a733a3e9efa9fd4bdc0b37a57f Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Fri, 21 Apr 2017 15:12:16 +0200 Subject: [PATCH] Do not allow adding add-ons to add-ons --- src/pretix/control/views/item.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/pretix/control/views/item.py b/src/pretix/control/views/item.py index 16b63c8d5e..8c8b917e1d 100644 --- a/src/pretix/control/views/item.py +++ b/src/pretix/control/views/item.py @@ -985,6 +985,21 @@ class ItemAddOns(ItemDetailMixin, EventPermissionRequiredMixin, TemplateView): return redirect(self.get_success_url()) return self.get(request, *args, **kwargs) + def get(self, request, *args, **kwargs): + if self.get_object().category and self.get_object().category.is_addon: + messages.error(self.request, _('Your cannot add addons to a product that is only available as an add-on ' + 'itself.')) + return redirect(self.get_previous_url()) + + return super().get(request, *args, **kwargs) + + def get_previous_url(self) -> str: + return reverse('control:event.item', kwargs={ + 'organizer': self.request.event.organizer.slug, + 'event': self.request.event.slug, + 'item': self.get_object().id, + }) + def get_success_url(self) -> str: return reverse('control:event.item.addons', kwargs={ 'organizer': self.request.event.organizer.slug, @@ -993,7 +1008,6 @@ class ItemAddOns(ItemDetailMixin, EventPermissionRequiredMixin, TemplateView): }) def get_context_data(self, **kwargs) -> dict: - self.object = self.get_object() context = super().get_context_data(**kwargs) context['formset'] = self.formset return context