Backend UX: Restructure payment settings

This commit is contained in:
Raphael Michel
2018-03-23 16:38:06 +01:00
parent 073860cd5b
commit 3a7e0da80b
13 changed files with 239 additions and 189 deletions

View File

@@ -135,52 +135,38 @@ class EventsTest(SoupTest):
doc = self.get_doc('/control/event/%s/%s/live/' % (self.orga1.slug, self.event1.slug))
assert len(doc.select(".btn-primary")) == 0
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), {
def test_payment_settings_provider(self):
self.get_doc('/control/event/%s/%s/settings/payment/banktransfer' % (self.orga1.slug, self.event1.slug))
self.post_doc('/control/event/%s/%s/settings/payment/banktransfer' % (self.orga1.slug, self.event1.slug), {
'payment_banktransfer__enabled': 'true',
'payment_banktransfer__fee_abs': '12.23',
'payment_banktransfer_bank_details_0': 'Test',
'settings-payment_term_days': '2',
'settings-tax_rate_default': tr19.pk,
})
self.event1.settings.flush()
assert self.event1.settings.get('payment_banktransfer__enabled', as_type=bool)
assert self.event1.settings.get('payment_banktransfer__fee_abs', as_type=Decimal) == Decimal('12.23')
def test_payment_settings_dont_require_fields_of_inactive_providers(self):
def test_payment_settings(self):
tr19 = self.event1.tax_rules.create(rate=Decimal('19.00'))
doc = self.post_doc('/control/event/%s/%s/settings/payment' % (self.orga1.slug, self.event1.slug), {
'settings-tax_rate_default': tr19.pk,
'settings-payment_term_days': '2'
}, follow=True)
assert doc.select('.alert-success')
def test_payment_settings_require_fields_of_active_providers(self):
tr19 = self.event1.tax_rules.create(rate=Decimal('19.00'))
doc = self.post_doc('/control/event/%s/%s/settings/payment' % (self.orga1.slug, self.event1.slug), {
'payment_banktransfer__enabled': 'true',
'payment_banktransfer__fee_abs': '12.23',
'settings-payment_term_days': '2',
'settings-tax_rate_default': tr19.pk,
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',
'tax_rate_default': tr19.pk,
})
assert doc.select('.alert-danger')
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 = datetime.datetime.now()
self.event1.save(update_fields=['presale_end'])
doc = self.post_doc('/control/event/%s/%s/settings/payment' % (self.orga1.slug, self.event1.slug), {
'payment_banktransfer__enabled': 'true',
'payment_banktransfer__fee_abs': '12.23',
'payment_banktransfer_bank_details_0': 'Test',
'settings-payment_term_days': '2',
'settings-payment_term_last_0': 'absolute',
'settings-payment_term_last_1': (self.event1.presale_end - datetime.timedelta(1)).strftime('%Y-%m-%d'),
'settings-payment_term_last_2': '0',
'settings-payment_term_last_3': 'date_from',
'settings-tax_rate_default': tr19.pk,
'payment_term_days': '2',
'payment_term_last_0': 'absolute',
'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,
})
assert doc.select('.alert-danger')
self.event1.presale_end = None
@@ -191,15 +177,12 @@ class EventsTest(SoupTest):
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), {
'payment_banktransfer__enabled': 'true',
'payment_banktransfer__fee_abs': '12.23',
'payment_banktransfer_bank_details_0': 'Test',
'settings-payment_term_days': '2',
'settings-payment_term_last_0': 'relative',
'settings-payment_term_last_1': '',
'settings-payment_term_last_2': '10',
'settings-payment_term_last_3': 'date_from',
'settings-tax_rate_default': tr19.pk,
'payment_term_days': '2',
'payment_term_last_0': 'relative',
'payment_term_last_1': '',
'payment_term_last_2': '10',
'payment_term_last_3': 'date_from',
'tax_rate_default': tr19.pk,
})
assert doc.select('.alert-danger')
self.event1.presale_end = None

View File

@@ -27,6 +27,7 @@ def env(client):
@pytest.mark.django_db
def test_settings(env):
client, event = env
response = client.get('/control/event/%s/%s/settings/payment' % (event.organizer.slug, event.slug), follow=True)
response = client.get('/control/event/%s/%s/settings/payment/paypal' % (event.organizer.slug, event.slug),
follow=True)
assert response.status_code == 200
assert 'paypal__enabled' in response.rendered_content

View File

@@ -43,7 +43,7 @@ def env(client):
t.members.add(user)
t.limit_events.add(event)
client.force_login(user)
url = '/control/event/%s/%s/settings/payment' % (event.organizer.slug, event.slug)
url = '/control/event/%s/%s/settings/payment/stripe_settings' % (event.organizer.slug, event.slug)
return client, event, url
@@ -57,8 +57,8 @@ def test_settings(env):
def _stripe_key_test(env, field, value, is_valid):
client, event, url = env
data = {'payment_stripe_' + field: value}
response = client.post(url, data)
data = {'payment_stripe_' + field: value, 'payment_stripe__enabled': 'on'}
response = client.post(url, data, follow=True)
if not is_valid:
assert 'does not look valid' in response.rendered_content