0001-lingo-show-backend-callback-URL-in-update-views-4914.patch
combo/apps/lingo/manager_views.py | ||
---|---|---|
50 | 50 |
form_class = RegieForm |
51 | 51 |
success_url = reverse_lazy('lingo-manager-regie-list') |
52 | 52 | |
53 |
def get_context_data(self, **kwargs): |
|
54 |
ctx = super().get_context_data(**kwargs) |
|
55 |
ctx['callback_url'] = self.request.build_absolute_uri(self.object.callback_url) |
|
56 |
return ctx |
|
57 | ||
53 | 58 | |
54 | 59 |
class RegieDeleteView(DeleteView): |
55 | 60 |
model = Regie |
... | ... | |
74 | 79 |
form_class = PaymentBackendForm |
75 | 80 |
success_url = reverse_lazy('lingo-manager-paymentbackend-list') |
76 | 81 | |
82 |
def get_context_data(self, **kwargs): |
|
83 |
ctx = super().get_context_data(**kwargs) |
|
84 |
ctx['callback_url'] = self.request.build_absolute_uri(self.object.callback_url) |
|
85 |
return ctx |
|
86 | ||
77 | 87 | |
78 | 88 |
class PaymentBackendDeleteView(DeleteView): |
79 | 89 |
model = PaymentBackend |
combo/apps/lingo/models.py | ||
---|---|---|
172 | 172 |
options = {} |
173 | 173 |
if request: |
174 | 174 |
if not automatic_return_url: |
175 |
automatic_return_url = reverse( |
|
176 |
'lingo-callback-payment-backend', kwargs={'payment_backend_pk': self.id} |
|
177 |
) |
|
178 | ||
175 |
automatic_return_url = self.callback_url |
|
179 | 176 |
if automatic_return_url: |
180 | 177 |
automatic_return_url = request.build_absolute_uri(automatic_return_url) |
181 | 178 |
if normal_return_url: |
182 | 179 |
normal_return_url = request.build_absolute_uri(normal_return_url) |
180 |
options['normal_return_url'] = normal_return_url |
|
183 | 181 |
options['automatic_return_url'] = automatic_return_url |
184 |
options['normal_return_url'] = normal_return_url |
|
185 | 182 |
else: |
186 | 183 |
assert ( |
187 | 184 |
not automatic_return_url and not normal_return_url |
... | ... | |
280 | 277 |
last_pk = transaction.pk |
281 | 278 |
transaction.poll_backend(ignore_errors=False) |
282 | 279 | |
280 |
@property |
|
281 |
def callback_url(self): |
|
282 |
return reverse('lingo-callback-payment-backend', kwargs={'payment_backend_pk': self.pk}) |
|
283 | ||
283 | 284 | |
284 | 285 |
@python_2_unicode_compatible |
285 | 286 |
class Regie(models.Model): |
... | ... | |
606 | 607 |
def make_eopayment(self, **kwargs): |
607 | 608 |
return self.payment_backend.make_eopayment(**kwargs) |
608 | 609 | |
610 |
@property |
|
611 |
def callback_url(self): |
|
612 |
return self.payment_backend.callback_url |
|
613 | ||
609 | 614 | |
610 | 615 |
class BasketItem(models.Model): |
611 | 616 |
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, null=True) |
combo/apps/lingo/templates/lingo/paymentbackend_form.html | ||
---|---|---|
10 | 10 |
{% endblock %} |
11 | 11 | |
12 | 12 |
{% block content %} |
13 | ||
14 | 13 |
<form method="post" enctype="multipart/form-data"> |
14 |
{% if object.id and callback_url %} |
|
15 |
<p><label>{% trans "Callback URL:" %}</label> <a href="{{ callback_url }}">{{ callback_url }}</a></p> |
|
16 |
{% endif %} |
|
15 | 17 |
{% csrf_token %} |
16 | 18 |
{{ form.as_p }} |
17 | 19 |
<div class="buttons"> |
combo/apps/lingo/templates/lingo/regie_form.html | ||
---|---|---|
10 | 10 |
{% endblock %} |
11 | 11 | |
12 | 12 |
{% block content %} |
13 | ||
14 | 13 |
<form method="post" enctype="multipart/form-data"> |
14 |
{% if object.id and callback_url %} |
|
15 |
<p><label>{% trans "Callback URL:" %}</label> <a href="{{ callback_url }}">{{ callback_url }}</a></p> |
|
16 |
{% endif %} |
|
15 | 17 |
{% csrf_token %} |
16 | 18 |
{{ form.as_p }} |
17 | 19 |
<div class="buttons"> |
tests/test_lingo_manager.py | ||
---|---|---|
69 | 69 |
resp = app.get('/manage/lingo/regies/', status=200) |
70 | 70 |
resp = resp.click('Test') |
71 | 71 |
assert '/manage/lingo/regies/' in resp.text |
72 | ||
73 |
# callback URL is shown |
|
74 |
assert 'Callback URL' in resp |
|
75 |
assert 'http://testserver/lingo/callback-payment-backend/%s/' % payment_backend.pk in resp |
|
76 | ||
72 | 77 |
resp.forms[0]['description'] = 'other description' |
73 | 78 |
resp = resp.forms[0].submit() |
74 | 79 |
assert resp.location.endswith('/manage/lingo/regies/') |
... | ... | |
632 | 637 |
resp = app.get('/manage/lingo/paymentbackends/%s/edit' % payment_backend.pk, status=200) |
633 | 638 |
assert '/manage/lingo/paymentbackends/' in resp.text |
634 | 639 | |
640 |
# callback URL is shown |
|
641 |
assert 'Callback URL' in resp |
|
642 |
assert 'http://testserver/lingo/callback-payment-backend/%s' % payment_backend.pk in resp |
|
643 | ||
635 | 644 |
# service cannot be changed |
636 | 645 |
assert 'disabled' in resp.form['service'].attrs |
637 | 646 | |
638 |
- |