From 7d8bcd4b10080eca5df38e1543bcb75df294da5e Mon Sep 17 00:00:00 2001 From: Mira Weller Date: Wed, 5 Nov 2025 20:12:49 +0100 Subject: [PATCH] Migrate log action types to registry --- src/pretix/plugins/autocheckin/signals.py | 21 ++++----- src/pretix/plugins/stripe/signals.py | 56 +++++++++++------------ 2 files changed, 36 insertions(+), 41 deletions(-) diff --git a/src/pretix/plugins/autocheckin/signals.py b/src/pretix/plugins/autocheckin/signals.py index bf634d659e..952d3363df 100644 --- a/src/pretix/plugins/autocheckin/signals.py +++ b/src/pretix/plugins/autocheckin/signals.py @@ -26,6 +26,7 @@ from django.dispatch import receiver from django.urls import reverse from django.utils.translation import gettext_lazy as _ +from pretix.base.logentrytype_registry import LogEntryType, log_entry_types from pretix.base.models import Checkin, OrderPayment from pretix.base.signals import ( checkin_created, event_copy_data, item_copy_data, logentry_display, @@ -64,19 +65,13 @@ def nav_event_receiver(sender, request, **kwargs): ] -@receiver(signal=logentry_display) -def logentry_display_receiver(sender, logentry, **kwargs): - plains = { - "pretix.plugins.autocheckin.rule.added": _("An auto check-in rule was created"), - "pretix.plugins.autocheckin.rule.changed": _( - "An auto check-in rule was updated" - ), - "pretix.plugins.autocheckin.rule.deleted": _( - "An auto check-in rule was deleted" - ), - } - if logentry.action_type in plains: - return plains[logentry.action_type] +@log_entry_types.new_from_dict({ + "pretix.plugins.autocheckin.rule.added": _("An auto check-in rule was created"), + "pretix.plugins.autocheckin.rule.changed": _("An auto check-in rule was updated"), + "pretix.plugins.autocheckin.rule.deleted": _("An auto check-in rule was deleted"), +}) +class AutocheckinLogEntryType(LogEntryType): + pass @receiver(item_copy_data, dispatch_uid="autocheckin_item_copy") diff --git a/src/pretix/plugins/stripe/signals.py b/src/pretix/plugins/stripe/signals.py index 8202c10e1a..668d709b07 100644 --- a/src/pretix/plugins/stripe/signals.py +++ b/src/pretix/plugins/stripe/signals.py @@ -31,6 +31,7 @@ from django.utils.translation import gettext_lazy as _ from paypalhttp import HttpResponse from pretix.base.forms import SecretKeySettingsField +from pretix.base.logentrytype_registry import LogEntryType, log_entry_types from pretix.base.middleware import _merge_csp, _parse_csp, _render_csp from pretix.base.settings import settings_hierarkey from pretix.base.signals import ( @@ -80,37 +81,36 @@ def html_head_presale(sender, request=None, **kwargs): 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 +@log_entry_types.new() +class StripeEvent(LogEntryType): + action_type = 'pretix.plugins.stripe.event' - 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.'), - 'charge.pending': _('Charge pending'), - 'source.chargeable': _('Payment authorized.'), - 'source.canceled': _('Payment authorization canceled.'), - 'source.failed': _('Payment authorization failed.') - } + def display(self, logentry, data): + event_type = data.get('type') + text = None + plains = { + 'charge.succeeded': _('Charge succeeded.'), + 'charge.refunded': _('Charge refunded.'), + 'charge.updated': _('Charge updated.'), + 'charge.pending': _('Charge pending'), + 'source.chargeable': _('Payment authorized.'), + 'source.canceled': _('Payment authorization canceled.'), + 'source.failed': _('Payment authorization failed.') + } - 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 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) + if text: + return _('Stripe reported an event: {}').format(text) settings_hierarkey.add_default('payment_stripe_method_card', True, bool)