From 84415864e5d63db79574bc491e1e696ec1b5d524 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Mon, 16 Dec 2019 13:59:24 +0100 Subject: [PATCH] Note cloning of objects to log --- src/pretix/base/models/event.py | 7 +++++++ src/pretix/control/logdisplay.py | 1 + 2 files changed, 8 insertions(+) diff --git a/src/pretix/base/models/event.py b/src/pretix/base/models/event.py index a9f7768e12..97af805184 100644 --- a/src/pretix/base/models/event.py +++ b/src/pretix/base/models/event.py @@ -522,6 +522,7 @@ class Event(EventMixin, LoggedModel): self.is_public = other.is_public self.testmode = other.testmode self.save() + self.log_action('pretix.object.cloned', data={'source': other.slug, 'source_id': other.pk}) tax_map = {} for t in other.tax_rules.all(): @@ -529,6 +530,7 @@ class Event(EventMixin, LoggedModel): t.pk = None t.event = self t.save() + t.log_action('pretix.object.cloned') category_map = {} for c in ItemCategory.objects.filter(event=other): @@ -536,6 +538,7 @@ class Event(EventMixin, LoggedModel): c.pk = None c.event = self c.save() + c.log_action('pretix.object.cloned') item_map = {} variation_map = {} @@ -551,6 +554,7 @@ class Event(EventMixin, LoggedModel): if i.tax_rule_id: i.tax_rule = tax_map[i.tax_rule_id] i.save() + i.log_action('pretix.object.cloned') for v in vars: variation_map[v.pk] = v v.pk = None @@ -575,6 +579,7 @@ class Event(EventMixin, LoggedModel): q.cached_availability_time = None q.closed = False q.save() + q.log_action('pretix.object.cloned') for i in items: if i.pk in item_map: q.items.add(item_map[i.pk]) @@ -590,6 +595,7 @@ class Event(EventMixin, LoggedModel): q.pk = None q.event = self q.save() + q.log_action('pretix.object.cloned') for i in items: q.items.add(item_map[i.pk]) @@ -607,6 +613,7 @@ class Event(EventMixin, LoggedModel): cl.pk = None cl.event = self cl.save() + cl.log_action('pretix.object.cloned') for i in items: cl.limit_products.add(item_map[i.pk]) diff --git a/src/pretix/control/logdisplay.py b/src/pretix/control/logdisplay.py index 991056f98b..160c070970 100644 --- a/src/pretix/control/logdisplay.py +++ b/src/pretix/control/logdisplay.py @@ -178,6 +178,7 @@ def _display_checkin(event, logentry): @receiver(signal=logentry_display, dispatch_uid="pretixcontrol_logentry_display") def pretixcontrol_logentry_display(sender: Event, logentry: LogEntry, **kwargs): plains = { + 'pretix.object.cloned': _('This object has been created by cloning.'), 'pretix.event.comment': _('The event\'s internal comment has been updated.'), 'pretix.event.order.modified': _('The order details have been changed.'), 'pretix.event.order.unpaid': _('The order has been marked as unpaid.'),