Unify all calls to register_payment_providers

This commit is contained in:
Raphael Michel
2017-06-29 12:09:48 +02:00
parent d5d1fcf331
commit 2add8d671a
11 changed files with 48 additions and 90 deletions

View File

@@ -13,7 +13,6 @@ from pretix.base.models import Order
from pretix.base.models.orders import InvoiceAddress
from pretix.base.services.cart import set_cart_addons
from pretix.base.services.orders import perform_order
from pretix.base.signals import register_payment_providers
from pretix.multidomain.urlreverse import eventreverse
from pretix.presale.forms.checkout import (
AddOnsForm, ContactForm, InvoiceAddressForm,
@@ -353,9 +352,7 @@ class PaymentStep(QuestionsViewMixin, CartMixin, TemplateFlowStep):
@cached_property
def provider_forms(self):
providers = []
responses = register_payment_providers.send(self.request.event)
for receiver, response in responses:
provider = response(self.request.event)
for provider in self.request.event.get_payment_providers().values():
if not provider.is_enabled or not provider.is_allowed(self.request):
continue
fee = provider.calculate_fee(self._total_order_value)
@@ -392,11 +389,7 @@ class PaymentStep(QuestionsViewMixin, CartMixin, TemplateFlowStep):
@cached_property
def payment_provider(self):
responses = register_payment_providers.send(self.request.event)
for receiver, response in responses:
provider = response(self.request.event)
if provider.identifier == self.request.session['payment']:
return provider
return self.request.event.get_payment_providers().get(self.request.session['payment'])
def is_completed(self, request, warn=False):
self.request = request
@@ -464,11 +457,7 @@ class ConfirmStep(CartMixin, AsyncAction, TemplateFlowStep):
@cached_property
def payment_provider(self):
responses = register_payment_providers.send(self.request.event)
for receiver, response in responses:
provider = response(self.request.event)
if provider.identifier == self.request.session['payment']:
return provider
return self.request.event.get_payment_providers().get(self.request.session['payment'])
@cached_property
def invoice_address(self):

View File

@@ -8,7 +8,6 @@ from django.utils.timezone import now
from pretix.base.decimal import round_decimal
from pretix.base.models import CartPosition, OrderPosition
from pretix.base.signals import register_payment_providers
class CartMixin:
@@ -117,11 +116,9 @@ class CartMixin:
return Decimal('0.00')
payment_fee = 0
if 'payment' in self.request.session:
responses = register_payment_providers.send(self.request.event)
for receiver, response in responses:
provider = response(self.request.event)
if provider.identifier == self.request.session['payment']:
payment_fee = provider.calculate_fee(total)
provider = self.request.event.get_payment_providers().get(self.request.session['payment'])
if provider:
payment_fee = provider.calculate_fee(total)
return payment_fee

View File

@@ -18,9 +18,7 @@ from pretix.base.services.orders import cancel_order
from pretix.base.services.tickets import (
get_cachedticket_for_order, get_cachedticket_for_position,
)
from pretix.base.signals import (
register_payment_providers, register_ticket_outputs,
)
from pretix.base.signals import register_ticket_outputs
from pretix.multidomain.urlreverse import eventreverse
from pretix.presale.forms.checkout import InvoiceAddressForm
from pretix.presale.views import CartMixin, EventViewMixin
@@ -46,11 +44,7 @@ class OrderDetailMixin:
@cached_property
def payment_provider(self):
responses = register_payment_providers.send(self.request.event)
for receiver, response in responses:
provider = response(self.request.event)
if provider.identifier == self.order.payment_provider:
return provider
return self.request.event.get_payment_providers().get(self.order.payment_provider)
def get_order_url(self):
return eventreverse(self.request.event, 'presale:event.order', kwargs={
@@ -112,9 +106,7 @@ class OrderDetails(EventViewMixin, OrderDetailMixin, CartMixin, TemplateView):
)
ctx['can_change_method'] = False
responses = register_payment_providers.send(self.request.event)
for receiver, response in responses:
provider = response(self.request.event)
for provider in self.request.event.get_payment_providers().values():
if (provider.identifier != self.order.payment_provider and provider.is_enabled
and provider.order_change_allowed(self.order)):
ctx['can_change_method'] = True
@@ -295,9 +287,7 @@ class OrderPayChangeMethod(EventViewMixin, OrderDetailMixin, TemplateView):
@cached_property
def provider_forms(self):
providers = []
responses = register_payment_providers.send(self.request.event)
for receiver, response in responses:
provider = response(self.request.event)
for provider in self.request.event.get_payment_providers().values():
if provider.identifier == self.order.payment_provider:
continue
if not provider.is_enabled or not provider.order_change_allowed(self.order):