forked from CGM_Public/pretix_original
Fix crash if Bundle.designated_price is set to null
This commit is contained in:
@@ -1,3 +1,5 @@
|
|||||||
|
from decimal import Decimal
|
||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from django.db.models import Max
|
from django.db.models import Max
|
||||||
@@ -687,6 +689,10 @@ class ItemBundleForm(I18nModelForm):
|
|||||||
|
|
||||||
def clean(self):
|
def clean(self):
|
||||||
d = super().clean()
|
d = super().clean()
|
||||||
|
if not self.cleaned_data['designated_price']:
|
||||||
|
d['designated_price'] = Decimal('0.00')
|
||||||
|
self.instance.designated_price = Decimal('0.00')
|
||||||
|
|
||||||
if 'itemvar' in self.cleaned_data:
|
if 'itemvar' in self.cleaned_data:
|
||||||
if '-' in self.cleaned_data['itemvar']:
|
if '-' in self.cleaned_data['itemvar']:
|
||||||
itemid, varid = self.cleaned_data['itemvar'].split('-')
|
itemid, varid = self.cleaned_data['itemvar'].split('-')
|
||||||
|
|||||||
@@ -500,12 +500,13 @@ class ItemsTest(ItemFormTest):
|
|||||||
'bundles-0-id': '',
|
'bundles-0-id': '',
|
||||||
'bundles-0-itemvar': str(self.item1.pk),
|
'bundles-0-itemvar': str(self.item1.pk),
|
||||||
'bundles-0-count': '2',
|
'bundles-0-count': '2',
|
||||||
'bundles-0-designated_price': '2.00',
|
'bundles-0-designated_price': '',
|
||||||
})
|
})
|
||||||
self.client.post('/control/event/%s/%s/items/%d/' % (self.orga1.slug, self.event1.slug, self.item2.id), d)
|
self.client.post('/control/event/%s/%s/items/%d/' % (self.orga1.slug, self.event1.slug, self.item2.id), d)
|
||||||
with scopes_disabled():
|
with scopes_disabled():
|
||||||
assert self.item2.bundles.exists()
|
assert self.item2.bundles.exists()
|
||||||
assert self.item2.bundles.first().bundled_item == self.item1
|
assert self.item2.bundles.first().bundled_item == self.item1
|
||||||
|
assert self.item2.bundles.first().designated_price == Decimal('0.000')
|
||||||
d.update({
|
d.update({
|
||||||
'bundles-TOTAL_FORMS': '1',
|
'bundles-TOTAL_FORMS': '1',
|
||||||
'bundles-INITIAL_FORMS': '1',
|
'bundles-INITIAL_FORMS': '1',
|
||||||
|
|||||||
Reference in New Issue
Block a user