From ef8014bc6d183b1a1f31e4a0ba12cbaeb1048d63 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Wed, 18 Apr 2018 15:50:41 +0200 Subject: [PATCH] Fix initial value in voucher form --- src/pretix/control/forms/vouchers.py | 17 +++++++++++++++++ src/pretix/control/forms/widgets.py | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/pretix/control/forms/vouchers.py b/src/pretix/control/forms/vouchers.py index 4bfed313c2..a6027f00e2 100644 --- a/src/pretix/control/forms/vouchers.py +++ b/src/pretix/control/forms/vouchers.py @@ -77,6 +77,23 @@ class VoucherForm(I18nModelForm): del self.fields['subevent'] choices = [] + if 'itemvar' in initial: + iv = initial.get('itemvar', '') + if iv.startswith('q-'): + q = self.instance.event.quotas.get(pk=iv[2:]) + choices.append(('q-%d' % q.pk, _('Any product in quota "{quota}"').format(quota=q))) + elif '-' in iv: + itemid, varid = iv.split('-') + i = self.instance.event.items.get(pk=itemid) + v = i.variations.get(pk=varid) + choices.append(('%d-%d' % (i.pk, v.pk), '%s – %s' % (i.name, v.value))) + else: + i = self.instance.event.items.get(pk=iv) + if i.variations.exists(): + choices.append((str(i.pk), _('{product} – Any variation').format(product=i.name))) + else: + choices.append((str(i.pk), str(i.name))) + self.fields['itemvar'].choices = choices self.fields['itemvar'].widget = Select2ItemVarQuota( attrs={ diff --git a/src/pretix/control/forms/widgets.py b/src/pretix/control/forms/widgets.py index 924c261e04..046a6e4e85 100644 --- a/src/pretix/control/forms/widgets.py +++ b/src/pretix/control/forms/widgets.py @@ -45,7 +45,7 @@ class Select2ItemVarQuotaMixin(Select2Mixin): yield self.create_option( None, value[0], - value[0], + dict(self.choices)[value[0]], True, 0, subindex=None,