mirror of
https://github.com/pretix/pretix.git
synced 2026-05-04 15:04:03 +00:00
New data model for default tax rule and new options for cancellation fees (#4962)
* New data model for default tax rule * Remove misleading empty label when field is not optional * Allow to split cancellation fee * Fix API and tests * Update migration * Update src/tests/api/test_taxrules.py Co-authored-by: luelista <weller@rami.io> * Update src/tests/api/test_taxrules.py Co-authored-by: luelista <weller@rami.io> * Review note * Update src/pretix/base/models/tax.py Co-authored-by: luelista <weller@rami.io> * Flip API behaviour for default * Fix failing tests * Fix failing test * Split migration --------- Co-authored-by: luelista <weller@rami.io>
This commit is contained in:
@@ -443,19 +443,17 @@ class EventsTest(SoupTest):
|
||||
assert self.event1.settings.get('payment_banktransfer__fee_abs', as_type=Decimal) == Decimal('12.23')
|
||||
|
||||
def test_payment_settings(self):
|
||||
tr19 = self.event1.tax_rules.create(rate=Decimal('19.00'))
|
||||
self.get_doc('/control/event/%s/%s/settings/payment' % (self.orga1.slug, self.event1.slug))
|
||||
self.post_doc('/control/event/%s/%s/settings/payment' % (self.orga1.slug, self.event1.slug), {
|
||||
'payment_term_days': '2',
|
||||
'payment_term_minutes': '30',
|
||||
'payment_term_mode': 'days',
|
||||
'tax_rate_default': tr19.pk,
|
||||
'tax_rule_payment': 'default',
|
||||
})
|
||||
self.event1.settings.flush()
|
||||
assert self.event1.settings.get('payment_term_days', as_type=int) == 2
|
||||
|
||||
def test_payment_settings_last_date_payment_after_presale_end(self):
|
||||
tr19 = self.event1.tax_rules.create(rate=Decimal('19.00'))
|
||||
self.event1.presale_end = now()
|
||||
self.event1.save(update_fields=['presale_end'])
|
||||
doc = self.post_doc('/control/event/%s/%s/settings/payment' % (self.orga1.slug, self.event1.slug), {
|
||||
@@ -464,15 +462,13 @@ class EventsTest(SoupTest):
|
||||
'payment_term_last_1': (self.event1.presale_end - datetime.timedelta(1)).strftime('%Y-%m-%d'),
|
||||
'payment_term_last_2': '0',
|
||||
'payment_term_last_3': 'date_from',
|
||||
'tax_rate_default': tr19.pk,
|
||||
'tax_rule_payment': 'default',
|
||||
})
|
||||
assert doc.select('.alert-danger')
|
||||
self.event1.presale_end = None
|
||||
self.event1.save(update_fields=['presale_end'])
|
||||
|
||||
def test_payment_settings_relative_date_payment_after_presale_end(self):
|
||||
with scopes_disabled():
|
||||
tr19 = self.event1.tax_rules.create(rate=Decimal('19.00'))
|
||||
self.event1.presale_end = self.event1.date_from - datetime.timedelta(days=5)
|
||||
self.event1.save(update_fields=['presale_end'])
|
||||
doc = self.post_doc('/control/event/%s/%s/settings/payment' % (self.orga1.slug, self.event1.slug), {
|
||||
@@ -481,7 +477,7 @@ class EventsTest(SoupTest):
|
||||
'payment_term_last_1': '',
|
||||
'payment_term_last_2': '10',
|
||||
'payment_term_last_3': 'date_from',
|
||||
'tax_rate_default': tr19.pk,
|
||||
'tax_rule_payment': 'default',
|
||||
})
|
||||
assert doc.select('.alert-danger')
|
||||
self.event1.presale_end = None
|
||||
@@ -912,7 +908,7 @@ class EventsTest(SoupTest):
|
||||
def test_create_event_copy_success(self):
|
||||
with scopes_disabled():
|
||||
tr = self.event1.tax_rules.create(
|
||||
rate=19, name="VAT"
|
||||
rate=19, name="VAT", default=True
|
||||
)
|
||||
q1 = self.event1.quotas.create(
|
||||
name='Foo',
|
||||
@@ -923,7 +919,6 @@ class EventsTest(SoupTest):
|
||||
category=None, default_price=23, tax_rule=tr,
|
||||
admission=True, hidden_if_available=q1
|
||||
)
|
||||
self.event1.settings.tax_rate_default = tr
|
||||
doc = self.get_doc('/control/events/add')
|
||||
|
||||
doc = self.post_doc('/control/events/add', {
|
||||
@@ -990,14 +985,13 @@ class EventsTest(SoupTest):
|
||||
def test_create_event_clone_success(self):
|
||||
with scopes_disabled():
|
||||
tr = self.event1.tax_rules.create(
|
||||
rate=19, name="VAT"
|
||||
rate=19, name="VAT", default=True
|
||||
)
|
||||
self.event1.items.create(
|
||||
name='Early-bird ticket',
|
||||
category=None, default_price=23, tax_rule=tr,
|
||||
admission=True
|
||||
)
|
||||
self.event1.settings.tax_rate_default = tr
|
||||
doc = self.get_doc('/control/events/add?clone=' + str(self.event1.pk))
|
||||
tabletext = doc.select("form")[0].text
|
||||
self.assertIn("CCC", tabletext)
|
||||
|
||||
Reference in New Issue
Block a user