From 6e416eacfd67c74369cada78629e7aa11ba0cb3f Mon Sep 17 00:00:00 2001 From: Hugo LEVY-FALK Date: Sun, 17 Jun 2018 16:31:47 +0200 Subject: [PATCH] Autorise le paiement de cotisation directement en ligne (sans passer par le solde) --- cotisations/payment.py | 15 +++++++++++++-- cotisations/views.py | 11 +++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/cotisations/payment.py b/cotisations/payment.py index b03e1c55..5a9f5432 100644 --- a/cotisations/payment.py +++ b/cotisations/payment.py @@ -25,13 +25,24 @@ def accept_payment(request, factureid): """ The view called when an online payment has been accepted. """ - facture = get_object_or_404(Facture, id=factureid) + invoice = get_object_or_404(Facture, id=factureid) messages.success( request, _("The payment of %(amount)s € has been accepted.") % { - 'amount': facture.prix() + 'amount': invoice.prix() } ) + # In case a cotisation was bought, inform the user, the + # cotisation time has been extended too + if any(purchase.type_cotisation for purchase in invoice.vente_set.all()): + messages.success( + request, + _("The cotisation of %(member_name)s has been \ + extended to %(end_date)s.") % { + 'member_name': request.user.pseudo, + 'end_date': request.user.end_adhesion() + } + ) return redirect(reverse( 'users:profil', kwargs={'userid': request.user.id} diff --git a/cotisations/views.py b/cotisations/views.py index 47076c8f..25b676c1 100644 --- a/cotisations/views.py +++ b/cotisations/views.py @@ -141,9 +141,14 @@ def new_facture(request, user, userid): 'users:profil', kwargs={'userid': userid} )) + is_online_payment = new_invoice_instance.paiement == ( + Paiement.objects.get_or_create( + moyen='Rechargement en ligne')[0]) + new_invoice_instance.valid = is_online_payment # Saving the invoice new_invoice_instance.save() + # Building a purchase for each article sold for art_item in articles: if art_item.cleaned_data: @@ -159,6 +164,12 @@ def new_facture(request, user, userid): ) new_purchase.save() + if is_online_payment: + content = online_payment.PAYMENT_SYSTEM[ + AssoOption.get_cached_value('payment') + ](invoice, request) + return render(request, 'cotisations/payment.html', content) + # In case a cotisation was bought, inform the user, the # cotisation time has been extended too if any(art_item.cleaned_data['article'].type_cotisation