From 7a1ed539f813af66b44699bc23a5ad7df7cf2ad8 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Fri, 24 Apr 2026 13:37:10 +0200 Subject: [PATCH] Events/subevents: Fix missing logging for meta changes (Z#23232443) --- src/pretix/control/views/event.py | 24 +++++++++---- src/pretix/control/views/subevents.py | 51 ++++++++++++++++++++------- 2 files changed, 57 insertions(+), 18 deletions(-) diff --git a/src/pretix/control/views/event.py b/src/pretix/control/views/event.py index 92eb58c7d9..12e71af84f 100644 --- a/src/pretix/control/views/event.py +++ b/src/pretix/control/views/event.py @@ -234,13 +234,25 @@ class EventUpdate(DecoupleMixin, EventSettingsViewMixin, EventPermissionRequired self.request.event.log_action('pretix.event.footerlinks.changed', user=self.request.user, data={ 'data': self.footer_links_formset.cleaned_data }) - if form.has_changed(): - self.request.event.log_action('pretix.event.changed', user=self.request.user, data={ - k: (form.cleaned_data.get(k).name - if isinstance(form.cleaned_data.get(k), File) - else form.cleaned_data.get(k)) - for k in form.changed_data + + change_data = { + k: (form.cleaned_data.get(k).name + if isinstance(form.cleaned_data.get(k), File) + else form.cleaned_data.get(k)) + for k in form.changed_data + } + meta_changed = {} + for f in self.meta_forms: + meta_changed.update({ + k: (f.cleaned_data.get(k).name + if isinstance(f.cleaned_data.get(k), File) + else f.cleaned_data.get(k)) + for k in f.changed_data }) + if meta_changed: + change_data['meta_data'] = meta_changed + if change_data: + self.request.event.log_action('pretix.event.changed', user=self.request.user, data=change_data) tickets.invalidate_cache.apply_async(kwargs={'event': self.request.event.pk}) messages.success(self.request, _('Your changes have been saved.')) diff --git a/src/pretix/control/views/subevents.py b/src/pretix/control/views/subevents.py index 4ecf6a8237..7f4cce9d69 100644 --- a/src/pretix/control/views/subevents.py +++ b/src/pretix/control/views/subevents.py @@ -540,20 +540,35 @@ class SubEventUpdate(EventPermissionRequiredMixin, SubEventEditorMixin, UpdateVi # TODO: LogEntry? messages.success(self.request, _('Your changes have been saved.')) - if form.has_changed() or any(f.has_changed() for f in self.plugin_forms): - data = { - k: form.cleaned_data.get(k) for k in form.changed_data - } - for f in self.plugin_forms: - data.update({ - k: (f.cleaned_data.get(k).name - if isinstance(f.cleaned_data.get(k), File) - else f.cleaned_data.get(k)) - for k in f.changed_data - }) + + change_data = { + k: (form.cleaned_data.get(k).name + if isinstance(form.cleaned_data.get(k), File) + else form.cleaned_data.get(k)) + for k in form.changed_data + } + meta_changed = {} + for f in self.meta_forms: + meta_changed.update({ + k: (f.cleaned_data.get(k).name + if isinstance(f.cleaned_data.get(k), File) + else f.cleaned_data.get(k)) + for k in f.changed_data + }) + if meta_changed: + change_data['meta_data'] = meta_changed + for f in self.plugin_forms: + change_data.update({ + k: (f.cleaned_data.get(k).name + if isinstance(f.cleaned_data.get(k), File) + else f.cleaned_data.get(k)) + for k in f.changed_data + }) + if change_data: self.object.log_action( - 'pretix.subevent.changed', user=self.request.user, data=data + 'pretix.subevent.changed', user=self.request.user, data=change_data ) + for f in self.plugin_forms: f.subevent = self.object f.save() @@ -628,6 +643,18 @@ class SubEventCreate(SubEventEditorMixin, EventPermissionRequiredMixin, CreateVi else f.cleaned_data.get(k)) for k in f.cleaned_data }) + + meta_changed = {} + for f in self.meta_forms: + meta_changed.update({ + k: (f.cleaned_data.get(k).name + if isinstance(f.cleaned_data.get(k), File) + else f.cleaned_data.get(k)) + for k in f.cleaned_data + }) + if meta_changed: + data['meta_data'] = meta_changed + form.instance.log_action('pretix.subevent.added', data=dict(data), user=self.request.user) self.save_formset(form.instance)