From f56f6dd62802fafd4881ef543d10f9dbd84e38e0 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Fri, 2 Jun 2023 20:06:51 +0200 Subject: [PATCH] Voucher: Add link to order in voucher history --- src/pretix/base/models/base.py | 2 +- src/pretix/control/logdisplay.py | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/pretix/base/models/base.py b/src/pretix/base/models/base.py index cb4b0a5a77..478ce13e64 100644 --- a/src/pretix/base/models/base.py +++ b/src/pretix/base/models/base.py @@ -178,7 +178,7 @@ class LoggedModel(models.Model, LoggingMixin): return LogEntry.objects.filter( content_type=self.logs_content_type, object_id=self.pk - ).select_related('user', 'event', 'oauth_application', 'api_token', 'device') + ).select_related('user', 'event', 'event__organizer', 'oauth_application', 'api_token', 'device') class LockModel: diff --git a/src/pretix/control/logdisplay.py b/src/pretix/control/logdisplay.py index 18906efc95..d657c052cc 100644 --- a/src/pretix/control/logdisplay.py +++ b/src/pretix/control/logdisplay.py @@ -571,6 +571,17 @@ def pretixcontrol_logentry_display(sender: Event, logentry: LogEntry, **kwargs): else: data['value'] = LazyI18nString(data['value']) + if logentry.action_type == "pretix.voucher.redeemed": + data = defaultdict(lambda: '?', data) + url = reverse('control:event.order', kwargs={ + 'event': logentry.event.slug, + 'organizer': logentry.event.organizer.slug, + 'code': data['order_code'] + }) + return mark_safe(plains[logentry.action_type].format( + order_code='{}'.format(url, data['order_code']), + )) + if logentry.action_type in plains: data = defaultdict(lambda: '?', data) return plains[logentry.action_type].format_map(data)