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:
Raphael Michel
2024-05-07 09:50:16 +02:00
committed by GitHub
parent 7a63498333
commit 5ca0833db1
2 changed files with 6 additions and 6 deletions

View File

@@ -460,7 +460,7 @@ class Voucher(LoggedModel):
new_quotas = set(
Quota.objects.filter(
pk__in=Quota.variations.through.objects.filter(
itemvariation__item=old_instance.item,
itemvariation__item=item,
quota__subevent=data.get('subevent'),
).values('quota_id')
)

View File

@@ -90,8 +90,10 @@ class VoucherForm(I18nModelForm):
def __init__(self, *args, **kwargs):
instance = kwargs.get('instance')
initial = kwargs.get('initial')
self.initial_instance_data = None
if instance:
self.initial_instance_data = modelcopy(instance)
if instance.pk:
self.initial_instance_data = modelcopy(instance)
try:
if instance.variation:
initial['itemvar'] = '%d-%d' % (instance.item.pk, instance.variation.pk)
@@ -101,8 +103,6 @@ class VoucherForm(I18nModelForm):
initial['itemvar'] = 'q-%d' % instance.quota.pk
except Item.DoesNotExist:
pass
else:
self.initial_instance_data = None
super().__init__(*args, **kwargs)
if instance.event.has_subevents:
@@ -234,8 +234,8 @@ class VoucherForm(I18nModelForm):
)
if check_quota:
Voucher.clean_quota_check(
data, cnt, self.initial_instance_data, self.instance.event,
self.instance.quota, self.instance.item, self.instance.variation
data, cnt, self.initial_instance_data,
self.instance.event, self.instance.quota, self.instance.item, self.instance.variation
)
Voucher.clean_voucher_code(data, self.instance.event, self.instance.pk)
if 'seat' in self.fields and data.get('seat'):