Fix #407 -- Integrate more Stripe payment methods

This commit is contained in:
Raphael Michel
2017-07-12 16:42:44 +02:00
parent 1c6858653a
commit 48095d38be
16 changed files with 743 additions and 164 deletions

View File

@@ -5,6 +5,7 @@ from django.dispatch import receiver
from django.template.loader import get_template
from django.utils.translation import ugettext_lazy as _
from pretix.base.settings import settings_hierarkey
from pretix.base.signals import (
logentry_display, register_payment_providers, requiredaction_display,
)
@@ -13,18 +14,21 @@ from pretix.presale.signals import html_head
@receiver(register_payment_providers, dispatch_uid="payment_stripe")
def register_payment_provider(sender, **kwargs):
from .payment import Stripe
from .payment import (
StripeSettingsHolder, StripeCC, StripeGiropay, StripeIdeal, StripeAlipay, StripeBancontact,
StripeSofort
)
return Stripe
return [StripeSettingsHolder, StripeCC, StripeGiropay, StripeIdeal, StripeAlipay, StripeBancontact, StripeSofort]
@receiver(html_head, dispatch_uid="payment_stripe_html_head")
def html_head_presale(sender, request=None, **kwargs):
from .payment import Stripe
from .payment import StripeSettingsHolder
provider = Stripe(sender)
provider = StripeSettingsHolder(sender)
url = resolve(request.path_info)
if provider.is_enabled and ("checkout" in url.url_name or "order.pay" in url.url_name):
if provider.settings.get('_enabled', as_type=bool) and ("checkout" in url.url_name or "order.pay" in url.url_name):
template = get_template('pretixplugins/stripe/presale_head.html')
ctx = {'event': sender, 'settings': provider.settings}
return template.render(ctx)
@@ -81,3 +85,6 @@ def pretixcontrol_action_display(sender, action, request, **kwargs):
ctx = {'data': data, 'event': sender, 'action': action}
return template.render(ctx, request)
settings_hierarkey.add_default('payment_stripe_method_cc', True, bool)