Allow to unselect product or quota from voucher (#1799)

This commit is contained in:
Martin Gross
2020-10-06 09:08:15 +02:00
committed by GitHub
parent 5a09759cb9
commit b4778b5845

View File

@@ -128,7 +128,7 @@ class VoucherForm(I18nModelForm):
def clean(self): def clean(self):
data = super().clean() data = super().clean()
if not self._errors and self.data.get('itemvar'): if not self._errors:
try: try:
itemid = quotaid = None itemid = quotaid = None
iv = self.data.get('itemvar', '') iv = self.data.get('itemvar', '')
@@ -136,8 +136,10 @@ class VoucherForm(I18nModelForm):
quotaid = iv[2:] quotaid = iv[2:]
elif '-' in iv: elif '-' in iv:
itemid, varid = iv.split('-') itemid, varid = iv.split('-')
else: elif iv:
itemid, varid = iv, None itemid, varid = iv, None
else:
itemid, varid = None, None
if itemid: if itemid:
self.instance.item = self.instance.event.items.get(pk=itemid) self.instance.item = self.instance.event.items.get(pk=itemid)
@@ -146,11 +148,15 @@ class VoucherForm(I18nModelForm):
else: else:
self.instance.variation = None self.instance.variation = None
self.instance.quota = None self.instance.quota = None
elif quotaid:
else:
self.instance.quota = self.instance.event.quotas.get(pk=quotaid) self.instance.quota = self.instance.event.quotas.get(pk=quotaid)
self.instance.item = None self.instance.item = None
self.instance.variation = None self.instance.variation = None
else:
self.instance.quota = None
self.instance.item = None
self.instance.variation = None
except ObjectDoesNotExist: except ObjectDoesNotExist:
raise ValidationError(_("Invalid product selected.")) raise ValidationError(_("Invalid product selected."))