From 58f7ddb13d92948850ee72f8039162ec3c87505d Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Sun, 2 Oct 2016 17:41:10 +0200 Subject: [PATCH] Renamed and documented payment views --- src/pretix/presale/urls.py | 6 +-- src/pretix/presale/views/order.py | 64 +++++++++++++++++++------------ 2 files changed, 42 insertions(+), 28 deletions(-) diff --git a/src/pretix/presale/urls.py b/src/pretix/presale/urls.py index 4c48d16d8..9b3888243 100644 --- a/src/pretix/presale/urls.py +++ b/src/pretix/presale/urls.py @@ -34,13 +34,13 @@ event_patterns = [ url(r'^order/(?P[^/]+)/(?P[A-Za-z0-9]+)/modify$', pretix.presale.views.order.OrderModify.as_view(), name='event.order.modify'), - url(r'^order/(?P[^/]+)/(?P[A-Za-z0-9]+)/pay$', pretix.presale.views.order.OrderPay.as_view(), + url(r'^order/(?P[^/]+)/(?P[A-Za-z0-9]+)/pay$', pretix.presale.views.order.OrderPaymentStart.as_view(), name='event.order.pay'), url(r'^order/(?P[^/]+)/(?P[A-Za-z0-9]+)/pay/confirm$', - pretix.presale.views.order.OrderPayDo.as_view(), + pretix.presale.views.order.OrderPaymentConfirm.as_view(), name='event.order.pay.confirm'), url(r'^order/(?P[^/]+)/(?P[A-Za-z0-9]+)/pay/complete$', - pretix.presale.views.order.OrderPayComplete.as_view(), + pretix.presale.views.order.OrderPaymentComplete.as_view(), name='event.order.pay.complete'), url(r'^order/(?P[^/]+)/(?P[A-Za-z0-9]+)/pay/change', pretix.presale.views.order.OrderPayChangeMethod.as_view(), diff --git a/src/pretix/presale/views/order.py b/src/pretix/presale/views/order.py index 5da97fc70..7f42fd2f0 100644 --- a/src/pretix/presale/views/order.py +++ b/src/pretix/presale/views/order.py @@ -129,7 +129,11 @@ class OrderDetails(EventViewMixin, OrderDetailMixin, CartMixin, TemplateView): return ctx -class OrderPay(EventViewMixin, OrderDetailMixin, TemplateView): +class OrderPaymentStart(EventViewMixin, OrderDetailMixin, TemplateView): + """ + This is used if a payment is retried or the payment method is changed. It shows the payment + provider's form that asks for payment details (e.g. CC number). + """ template_name = "pretixpresale/event/order_pay.html" def dispatch(self, request, *args, **kwargs): @@ -171,29 +175,12 @@ class OrderPay(EventViewMixin, OrderDetailMixin, TemplateView): }) -class OrderInvoiceCreate(EventViewMixin, OrderDetailMixin, View): - - def dispatch(self, request, *args, **kwargs): - self.request = request - if not self.order: - raise Http404(_('Unknown order code or not authorized to access this order.')) - return super().dispatch(request, *args, **kwargs) - - def post(self, request, *args, **kwargs): - if self.request.event.settings.get('invoice_generate') != 'user' or not invoice_qualified(self.order): - messages.error(self.request, _('You cannot generate an invoice for this order.')) - elif self.order.invoices.exists(): - messages.error(self.request, _('An invoice for this order already exists.')) - else: - i = generate_invoice(self.order) - self.order.log_action('pretix.event.order.invoice.generated', data={ - 'invoice': i.pk - }) - messages.success(self.request, _('The invoice has been generated.')) - return redirect(self.get_order_url()) - - -class OrderPayDo(EventViewMixin, OrderDetailMixin, TemplateView): +class OrderPaymentConfirm(EventViewMixin, OrderDetailMixin, TemplateView): + """ + This is used if a payment is retried or the payment method is changed. It is shown after the + payment details have been entered and allows the user to confirm and review the details. On + submitting this view, the payment is performed. + """ template_name = "pretixpresale/event/order_pay_confirm.html" def dispatch(self, request, *args, **kwargs): @@ -230,7 +217,12 @@ class OrderPayDo(EventViewMixin, OrderDetailMixin, TemplateView): }) -class OrderPayComplete(EventViewMixin, OrderDetailMixin, View): +class OrderPaymentComplete(EventViewMixin, OrderDetailMixin, View): + """ + This is used for the first try of a payment. This means the user just entered payment + details and confirmed them during the order process and we don't need to show them again, + we just need to perform the payment. + """ def dispatch(self, request, *args, **kwargs): self.request = request if not self.order: @@ -347,6 +339,28 @@ class OrderPayChangeMethod(EventViewMixin, OrderDetailMixin, TemplateView): }) +class OrderInvoiceCreate(EventViewMixin, OrderDetailMixin, View): + + def dispatch(self, request, *args, **kwargs): + self.request = request + if not self.order: + raise Http404(_('Unknown order code or not authorized to access this order.')) + return super().dispatch(request, *args, **kwargs) + + def post(self, request, *args, **kwargs): + if self.request.event.settings.get('invoice_generate') != 'user' or not invoice_qualified(self.order): + messages.error(self.request, _('You cannot generate an invoice for this order.')) + elif self.order.invoices.exists(): + messages.error(self.request, _('An invoice for this order already exists.')) + else: + i = generate_invoice(self.order) + self.order.log_action('pretix.event.order.invoice.generated', data={ + 'invoice': i.pk + }) + messages.success(self.request, _('The invoice has been generated.')) + return redirect(self.get_order_url()) + + class OrderModify(EventViewMixin, OrderDetailMixin, QuestionsViewMixin, TemplateView): template_name = "pretixpresale/event/order_modify.html"