lingo: remove support for partial payment (#10177)

This commit is contained in:
Frédéric Péters 2017-05-12 11:41:17 +02:00
parent 3668ef26f7
commit a013add9ec
3 changed files with 14 additions and 13 deletions

View File

@ -8,8 +8,7 @@
<input type="hidden" name="next_url" value="{{ cell.page.get_online_url }}" />
<ul>
{% for item in regie_info.items %}
<li><label><input type="checkbox" name="item" value="{{ item.id }}" checked/>
<a href="{{ item.source_url }}">{{ item.subject }}</a>: {{ item.amount }} €</label>
<li><a href="{{ item.source_url }}">{{ item.subject }}</a>: {{ item.amount }} €
{% if item.user_cancellable %}
<a rel="popup" href="{% url 'lingo-cancel-item' pk=item.id %}">({% trans 'remove' %})</a>
{% endif %}

View File

@ -287,9 +287,6 @@ class PayView(View):
def post(self, request, *args, **kwargs):
regie_id = request.POST.get('regie')
next_url = request.POST.get('next_url')
if not request.POST.getlist('item'):
messages.warning(request, _('You have to choose at least one item to pay'))
return HttpResponseRedirect(next_url)
if regie_id:
regie = Regie.objects.get(pk=regie_id)
if regie.is_remote():
@ -300,10 +297,12 @@ class PayView(View):
remote_items_data.append(regie.get_invoice(request.user, item_id))
remote_items = ','.join([x.id for x in remote_items_data])
else:
items = BasketItem.objects.filter(id__in=request.POST.getlist('item'), regie=regie)
items = BasketItem.objects.filter(user=self.request.user,
regie=regie, payment_date__isnull=True,
cancellation_date__isnull=True)
remote_items = ''
else:
items = BasketItem.objects.filter(id__in=request.POST.getlist('item'))
items = BasketItem.objects.filter(user=self.request.user)
regie_id = items[0].regie_id
for item in items:
if item.regie_id != regie_id:

View File

@ -106,7 +106,7 @@ def test_payment_min_amount(regie, user):
subject=subject, **details)
b_items.append(b_item.pk)
login()
resp = client.post(reverse('lingo-pay'), {'item': b_items, 'regie': regie.pk})
resp = client.post(reverse('lingo-pay'), {'regie': regie.pk})
assert resp.status_code == 302
def test_successfull_items_payment(regie, user):
@ -121,7 +121,7 @@ def test_successfull_items_payment(regie, user):
subject=subject, **details)
b_items.append(b_item.pk)
login()
resp = client.post(reverse('lingo-pay'), {'item': b_items, 'regie': regie.pk})
resp = client.post(reverse('lingo-pay'), {'regie': regie.pk})
assert resp.status_code == 302
location = resp.get('location')
assert 'dummy-payment' in location
@ -319,8 +319,7 @@ def test_payment_callback(regie, user):
subject='test_item', amount='10.5',
source_url='http://example.org/testitem/')
login()
resp = client.post(reverse('lingo-pay'), {'item': [item.pk],
'regie': regie.pk})
resp = client.post(reverse('lingo-pay'), {'regie': regie.pk})
assert resp.status_code == 302
location = resp.get('location')
parsed = urlparse.urlparse(location)
@ -328,6 +327,7 @@ def test_payment_callback(regie, user):
transaction_id = qs['transaction_id'][0]
data = {'transaction_id': transaction_id, 'signed': True,
'amount': qs['amount'][0], 'ok': True}
assert data['amount'] == '10.50'
# call callback with GET
callback_url = reverse('lingo-callback', kwargs={'regie_pk': regie.id})
@ -338,8 +338,10 @@ def test_payment_callback(regie, user):
assert get_resp.status_code == 200
assert Transaction.objects.get(order_id=transaction_id).status == 3
resp = client.post(reverse('lingo-pay'), {'item': [item.pk],
'regie': regie.pk})
item = BasketItem.objects.create(user=user, regie=regie,
subject='test_item', amount='11.5',
source_url='http://example.org/testitem/')
resp = client.post(reverse('lingo-pay'), {'regie': regie.pk})
assert resp.status_code == 302
location = resp.get('location')
parsed = urlparse.urlparse(location)
@ -347,6 +349,7 @@ def test_payment_callback(regie, user):
transaction_id = qs['transaction_id'][0]
data = {'transaction_id': transaction_id, 'signed': True,
'amount': qs['amount'][0], 'ok': True}
assert data['amount'] == '11.50'
# call callback with POST
with mock.patch('combo.utils.RequestsSession.request') as request: