diff --git a/cotisations/payment.py b/cotisations/payment.py index b1ca953e..0b673c66 100644 --- a/cotisations/payment.py +++ b/cotisations/payment.py @@ -26,23 +26,26 @@ def accept_payment(request, factureid): The view called when an online payment has been accepted. """ invoice = get_object_or_404(Facture, id=factureid) - messages.success( - request, - _("The payment of %(amount)s € has been accepted.") % { - 'amount': invoice.prix_total() - } - ) - # 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()): + if invoice.valid: 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() + _("The payment of %(amount)s € has been accepted.") % { + 'amount': invoice.prix_total() } ) + # 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() + } + ) + else: + invoice.delete() return redirect(reverse( 'users:profil', kwargs={'userid': request.user.id} diff --git a/cotisations/views.py b/cotisations/views.py index 9d2b60a4..336d755f 100644 --- a/cotisations/views.py +++ b/cotisations/views.py @@ -162,7 +162,7 @@ def new_facture(request, user, 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 + new_invoice_instance.valid = not is_online_payment # Saving the invoice new_invoice_instance.save() @@ -185,7 +185,7 @@ def new_facture(request, user, userid): if is_online_payment: content = online_payment.PAYMENT_SYSTEM[ AssoOption.get_cached_value('payment') - ](invoice, request) + ](new_invoice_instance, request) return render(request, 'cotisations/payment.html', content) # In case a cotisation was bought, inform the user, the