forked from CGM_Public/pretix_original
Vouchers: Fix validation of quota when copying a blocking voucher (Z#23152799) (#4133)
* Vouchers: Fix validation of quota when copying a blocking voucher * Bugfixes
This commit is contained in:
@@ -460,7 +460,7 @@ class Voucher(LoggedModel):
|
|||||||
new_quotas = set(
|
new_quotas = set(
|
||||||
Quota.objects.filter(
|
Quota.objects.filter(
|
||||||
pk__in=Quota.variations.through.objects.filter(
|
pk__in=Quota.variations.through.objects.filter(
|
||||||
itemvariation__item=old_instance.item,
|
itemvariation__item=item,
|
||||||
quota__subevent=data.get('subevent'),
|
quota__subevent=data.get('subevent'),
|
||||||
).values('quota_id')
|
).values('quota_id')
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -90,8 +90,10 @@ class VoucherForm(I18nModelForm):
|
|||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
instance = kwargs.get('instance')
|
instance = kwargs.get('instance')
|
||||||
initial = kwargs.get('initial')
|
initial = kwargs.get('initial')
|
||||||
|
self.initial_instance_data = None
|
||||||
if instance:
|
if instance:
|
||||||
self.initial_instance_data = modelcopy(instance)
|
if instance.pk:
|
||||||
|
self.initial_instance_data = modelcopy(instance)
|
||||||
try:
|
try:
|
||||||
if instance.variation:
|
if instance.variation:
|
||||||
initial['itemvar'] = '%d-%d' % (instance.item.pk, instance.variation.pk)
|
initial['itemvar'] = '%d-%d' % (instance.item.pk, instance.variation.pk)
|
||||||
@@ -101,8 +103,6 @@ class VoucherForm(I18nModelForm):
|
|||||||
initial['itemvar'] = 'q-%d' % instance.quota.pk
|
initial['itemvar'] = 'q-%d' % instance.quota.pk
|
||||||
except Item.DoesNotExist:
|
except Item.DoesNotExist:
|
||||||
pass
|
pass
|
||||||
else:
|
|
||||||
self.initial_instance_data = None
|
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
if instance.event.has_subevents:
|
if instance.event.has_subevents:
|
||||||
@@ -234,8 +234,8 @@ class VoucherForm(I18nModelForm):
|
|||||||
)
|
)
|
||||||
if check_quota:
|
if check_quota:
|
||||||
Voucher.clean_quota_check(
|
Voucher.clean_quota_check(
|
||||||
data, cnt, self.initial_instance_data, self.instance.event,
|
data, cnt, self.initial_instance_data,
|
||||||
self.instance.quota, self.instance.item, self.instance.variation
|
self.instance.event, self.instance.quota, self.instance.item, self.instance.variation
|
||||||
)
|
)
|
||||||
Voucher.clean_voucher_code(data, self.instance.event, self.instance.pk)
|
Voucher.clean_voucher_code(data, self.instance.event, self.instance.pk)
|
||||||
if 'seat' in self.fields and data.get('seat'):
|
if 'seat' in self.fields and data.get('seat'):
|
||||||
|
|||||||
Reference in New Issue
Block a user