From 6a2a6fdceea9652ce85b96645b3ae5984c58d839 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Sun, 15 Mar 2015 16:25:54 +0100 Subject: [PATCH] Small changes to the payment API --- src/pretix/base/payment.py | 4 +--- src/pretix/presale/views/checkout.py | 8 ++++---- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/pretix/base/payment.py b/src/pretix/base/payment.py index b66a60c71..e6d9129df 100644 --- a/src/pretix/base/payment.py +++ b/src/pretix/base/payment.py @@ -105,7 +105,7 @@ class BasePaymentProvider: """ raise NotImplementedError() # NOQA - def checkout_prepare(self, request, total) -> "bool|HttpResponse": + def checkout_prepare(self, request, cart) -> "bool|HttpResponse": """ Will be called if the user selects this provider as his payment method. If the payment provider provides a form to the user to enter payment data, @@ -117,8 +117,6 @@ class BasePaymentProvider: On errors, it should use Django's message framework to display an error message to the user (or the normal form validation error messages). - - :param total: The total price of the order, including the payment method fee. """ form = self.checkout_form(request) if form.is_valid(): diff --git a/src/pretix/presale/views/checkout.py b/src/pretix/presale/views/checkout.py index a25d232d3..3cdadac2e 100644 --- a/src/pretix/presale/views/checkout.py +++ b/src/pretix/presale/views/checkout.py @@ -205,7 +205,7 @@ class CheckoutStart(EventViewMixin, CartDisplayMixin, EventLoginRequiredMixin, return ctx -class PaymentDetails(EventViewMixin, EventLoginRequiredMixin, CheckoutView): +class PaymentDetails(EventViewMixin, CartDisplayMixin, EventLoginRequiredMixin, CheckoutView): template_name = "pretixpresale/event/checkout_payment.html" @cached_property @@ -234,10 +234,10 @@ class PaymentDetails(EventViewMixin, EventLoginRequiredMixin, CheckoutView): for p in self.provider_forms: if p['provider'].identifier == request.POST.get('payment', ''): request.session['payment'] = p['provider'].identifier - total = self._total_order_value + p['provider'].calculate_fee(self._total_order_value) - resp = p['provider'].checkout_prepare(request, total) + resp = p['provider'].checkout_prepare( + request, self.get_cart(payment_fee=p['provider'].calculate_fee(self._total_order_value))) if isinstance(resp, str): - return redirect(str) + return redirect(resp) elif resp is True: return redirect(self.get_confirm_url()) else: