lingo: show backend callback URL in update views (#49145)
This commit is contained in:
parent
829fc79e8e
commit
2bfb96ea95
|
@ -50,6 +50,11 @@ class RegieUpdateView(UpdateView):
|
|||
form_class = RegieForm
|
||||
success_url = reverse_lazy('lingo-manager-regie-list')
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
ctx = super().get_context_data(**kwargs)
|
||||
ctx['callback_url'] = self.request.build_absolute_uri(self.object.callback_url)
|
||||
return ctx
|
||||
|
||||
|
||||
class RegieDeleteView(DeleteView):
|
||||
model = Regie
|
||||
|
@ -74,6 +79,11 @@ class PaymentBackendUpdateView(UpdateView):
|
|||
form_class = PaymentBackendForm
|
||||
success_url = reverse_lazy('lingo-manager-paymentbackend-list')
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
ctx = super().get_context_data(**kwargs)
|
||||
ctx['callback_url'] = self.request.build_absolute_uri(self.object.callback_url)
|
||||
return ctx
|
||||
|
||||
|
||||
class PaymentBackendDeleteView(DeleteView):
|
||||
model = PaymentBackend
|
||||
|
|
|
@ -172,16 +172,13 @@ class PaymentBackend(models.Model):
|
|||
options = {}
|
||||
if request:
|
||||
if not automatic_return_url:
|
||||
automatic_return_url = reverse(
|
||||
'lingo-callback-payment-backend', kwargs={'payment_backend_pk': self.id}
|
||||
)
|
||||
|
||||
automatic_return_url = self.callback_url
|
||||
if automatic_return_url:
|
||||
automatic_return_url = request.build_absolute_uri(automatic_return_url)
|
||||
if normal_return_url:
|
||||
normal_return_url = request.build_absolute_uri(normal_return_url)
|
||||
options['normal_return_url'] = normal_return_url
|
||||
options['automatic_return_url'] = automatic_return_url
|
||||
options['normal_return_url'] = normal_return_url
|
||||
else:
|
||||
assert (
|
||||
not automatic_return_url and not normal_return_url
|
||||
|
@ -280,6 +277,10 @@ class PaymentBackend(models.Model):
|
|||
last_pk = transaction.pk
|
||||
transaction.poll_backend(ignore_errors=False)
|
||||
|
||||
@property
|
||||
def callback_url(self):
|
||||
return reverse('lingo-callback-payment-backend', kwargs={'payment_backend_pk': self.pk})
|
||||
|
||||
|
||||
@python_2_unicode_compatible
|
||||
class Regie(models.Model):
|
||||
|
@ -606,6 +607,10 @@ class Regie(models.Model):
|
|||
def make_eopayment(self, **kwargs):
|
||||
return self.payment_backend.make_eopayment(**kwargs)
|
||||
|
||||
@property
|
||||
def callback_url(self):
|
||||
return self.payment_backend.callback_url
|
||||
|
||||
|
||||
class BasketItem(models.Model):
|
||||
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, null=True)
|
||||
|
|
|
@ -10,8 +10,10 @@
|
|||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<form method="post" enctype="multipart/form-data">
|
||||
{% if object.id and callback_url %}
|
||||
<p><label>{% trans "Callback URL:" %}</label> <a href="{{ callback_url }}">{{ callback_url }}</a></p>
|
||||
{% endif %}
|
||||
{% csrf_token %}
|
||||
{{ form.as_p }}
|
||||
<div class="buttons">
|
||||
|
|
|
@ -10,8 +10,10 @@
|
|||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<form method="post" enctype="multipart/form-data">
|
||||
{% if object.id and callback_url %}
|
||||
<p><label>{% trans "Callback URL:" %}</label> <a href="{{ callback_url }}">{{ callback_url }}</a></p>
|
||||
{% endif %}
|
||||
{% csrf_token %}
|
||||
{{ form.as_p }}
|
||||
<div class="buttons">
|
||||
|
|
|
@ -69,6 +69,11 @@ def test_edit_regie(app, admin_user, payment_backend):
|
|||
resp = app.get('/manage/lingo/regies/', status=200)
|
||||
resp = resp.click('Test')
|
||||
assert '/manage/lingo/regies/' in resp.text
|
||||
|
||||
# callback URL is shown
|
||||
assert 'Callback URL' in resp
|
||||
assert 'http://testserver/lingo/callback-payment-backend/%s/' % payment_backend.pk in resp
|
||||
|
||||
resp.forms[0]['description'] = 'other description'
|
||||
resp = resp.forms[0].submit()
|
||||
assert resp.location.endswith('/manage/lingo/regies/')
|
||||
|
@ -632,6 +637,10 @@ def test_edit_payment_backend(app, admin_user):
|
|||
resp = app.get('/manage/lingo/paymentbackends/%s/edit' % payment_backend.pk, status=200)
|
||||
assert '/manage/lingo/paymentbackends/' in resp.text
|
||||
|
||||
# callback URL is shown
|
||||
assert 'Callback URL' in resp
|
||||
assert 'http://testserver/lingo/callback-payment-backend/%s' % payment_backend.pk in resp
|
||||
|
||||
# service cannot be changed
|
||||
assert 'disabled' in resp.form['service'].attrs
|
||||
|
||||
|
|
Loading…
Reference in New Issue