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.core.exceptions import ValidationError
|
||||
from django.db.models import Max
|
||||
@@ -687,6 +689,10 @@ class ItemBundleForm(I18nModelForm):
|
||||
|
||||
def clean(self):
|
||||
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 '-' in self.cleaned_data['itemvar']:
|
||||
itemid, varid = self.cleaned_data['itemvar'].split('-')
|
||||
|
||||
@@ -500,12 +500,13 @@ class ItemsTest(ItemFormTest):
|
||||
'bundles-0-id': '',
|
||||
'bundles-0-itemvar': str(self.item1.pk),
|
||||
'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)
|
||||
with scopes_disabled():
|
||||
assert self.item2.bundles.exists()
|
||||
assert self.item2.bundles.first().bundled_item == self.item1
|
||||
assert self.item2.bundles.first().designated_price == Decimal('0.000')
|
||||
d.update({
|
||||
'bundles-TOTAL_FORMS': '1',
|
||||
'bundles-INITIAL_FORMS': '1',
|
||||
|
||||
Reference in New Issue
Block a user