Fix #232 -- display log text for stripe events

This commit is contained in:
Raphael Michel
2016-09-18 18:29:18 +02:00
parent 96828c3f5a
commit ebbd9aaee9

View File

@@ -1,9 +1,12 @@
import json
from django.core.urlresolvers import resolve
from django.dispatch import receiver
from django.template import Context
from django.template.loader import get_template
from django.utils.translation import ugettext_lazy as _
from pretix.base.signals import register_payment_providers
from pretix.base.signals import logentry_display, register_payment_providers
from pretix.presale.signals import html_head
@@ -26,3 +29,32 @@ def html_head_presale(sender, request=None, **kwargs):
return template.render(ctx)
else:
return ""
@receiver(signal=logentry_display, dispatch_uid="stripe_logentry_display")
def pretixcontrol_logentry_display(sender, logentry, **kwargs):
if logentry.action_type != 'pretix.plugins.stripe.event':
return
data = json.loads(logentry.data)
event_type = data.get('type')
text = None
plains = {
'charge.succeeded': _('Charge succeeded.'),
'charge.refunded': _('Charge refunded.'),
'charge.updated': _('Charge updated.'),
}
if event_type in plains:
text = plains[event_type]
elif event_type == 'charge.failed':
text = _('Charge failed. Reason: {}').format(data['data']['object']['failure_message'])
elif event_type == 'charge.dispute.created':
text = _('Dispute created. Reason: {}').format(data['data']['object']['reason'])
elif event_type == 'charge.dispute.updated':
text = _('Dispute updated. Reason: {}').format(data['data']['object']['reason'])
elif event_type == 'charge.dispute.closed':
text = _('Dispute closed. Status: {}').format(data['data']['object']['status'])
if text:
return _('Stripe reported an event: {}').format(text)