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

@@ -24,7 +24,6 @@ from reportlab.platypus import (
from pretix.base.i18n import language
from pretix.base.models import Invoice, InvoiceAddress, InvoiceLine, Order
from pretix.base.services.async import TransactionAwareTask
from pretix.base.signals import register_payment_providers
from pretix.celery_app import app
from pretix.helpers.database import rolledback_transaction
@@ -32,12 +31,7 @@ from pretix.helpers.database import rolledback_transaction
@transaction.atomic
def build_invoice(invoice: Invoice) -> Invoice:
with language(invoice.locale):
responses = register_payment_providers.send(invoice.event)
for receiver, response in responses:
provider = response(invoice.event)
if provider.identifier == invoice.order.payment_provider:
payment_provider = provider
break
payment_provider = invoice.event.get_payment_providers().get(invoice.order.payment_provider)
invoice.invoice_from = invoice.event.settings.get('invoice_address_from')

View File

@@ -30,9 +30,7 @@ from pretix.base.services.invoices import (
)
from pretix.base.services.locking import LockTimeoutException
from pretix.base.services.mail import SendMailException, mail
from pretix.base.signals import (
order_paid, order_placed, periodic_task, register_payment_providers,
)
from pretix.base.signals import order_paid, order_placed, periodic_task
from pretix.celery_app import app
from pretix.multidomain.urlreverse import build_absolute_uri
@@ -366,12 +364,7 @@ def _perform_order(event: str, payment_provider: str, position_ids: List[str],
email: str, locale: str, address: int, meta_info: dict=None):
event = Event.objects.get(id=event)
responses = register_payment_providers.send(event)
pprov = None
for rec, response in responses:
provider = response(event)
if provider.identifier == payment_provider:
pprov = provider
pprov = event.get_payment_providers().get(payment_provider)
if not pprov:
raise OrderError(error_messages['internal'])
@@ -637,10 +630,11 @@ class OrderChangeManager:
def _recalculate_total_and_payment_fee(self):
self.order.total = sum([p.price for p in self.order.positions.all()])
if self.order.total == 0:
payment_fee = Decimal('0.00')
else:
payment_fee = self._get_payment_provider().calculate_fee(self.order.total)
payment_fee = Decimal('0.00')
if self.order.total != 0:
prov = self._get_payment_provider()
if prov:
payment_fee = prov.calculate_fee(self.order.total)
self.order.payment_fee = payment_fee
self.order.total += payment_fee
self.order._calculate_tax()
@@ -703,12 +697,7 @@ class OrderChangeManager:
CachedTicket.objects.filter(order_position__order=self.order).delete()
def _get_payment_provider(self):
responses = register_payment_providers.send(self.order.event)
pprov = None
for rec, response in responses:
provider = response(self.order.event)
if provider.identifier == self.order.payment_provider:
return provider
pprov = self.order.event.get_payment_providers().get(self.order.payment_provider)
if not pprov:
raise OrderError(error_messages['internal'])

View File

@@ -5,7 +5,6 @@ from django.db.models import Count, Sum
from django.utils.translation import ugettext_lazy as _
from pretix.base.models import Event, Item, ItemCategory, Order, OrderPosition
from pretix.base.signals import register_payment_providers
class DummyObject:
@@ -182,11 +181,10 @@ def order_overview(event: Event) -> Tuple[List[Tuple[ItemCategory, List[Item]]],
}
num_total = dictsum(num_pending, num_paid)
provider_names = {}
responses = register_payment_providers.send(event)
for receiver, response in responses:
provider = response(event)
provider_names[provider.identifier] = provider.verbose_name
provider_names = {
k: v.verbose_name
for k, v in event.get_payment_providers().items()
}
for pprov, total in num_total.items():
ppobj = DummyObject()