Events/subevents: Fix missing logging for meta changes (Z#23232443)

This commit is contained in:
Raphael Michel
2026-04-24 13:37:10 +02:00
parent 0bb04ca8f0
commit 7a1ed539f8
2 changed files with 57 additions and 18 deletions

View File

@@ -234,13 +234,25 @@ class EventUpdate(DecoupleMixin, EventSettingsViewMixin, EventPermissionRequired
self.request.event.log_action('pretix.event.footerlinks.changed', user=self.request.user, data={ self.request.event.log_action('pretix.event.footerlinks.changed', user=self.request.user, data={
'data': self.footer_links_formset.cleaned_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={ change_data = {
k: (form.cleaned_data.get(k).name k: (form.cleaned_data.get(k).name
if isinstance(form.cleaned_data.get(k), File) if isinstance(form.cleaned_data.get(k), File)
else form.cleaned_data.get(k)) else form.cleaned_data.get(k))
for k in form.changed_data 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}) tickets.invalidate_cache.apply_async(kwargs={'event': self.request.event.pk})
messages.success(self.request, _('Your changes have been saved.')) messages.success(self.request, _('Your changes have been saved.'))

View File

@@ -540,20 +540,35 @@ class SubEventUpdate(EventPermissionRequiredMixin, SubEventEditorMixin, UpdateVi
# TODO: LogEntry? # TODO: LogEntry?
messages.success(self.request, _('Your changes have been saved.')) 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 = { change_data = {
k: form.cleaned_data.get(k) for k in form.changed_data k: (form.cleaned_data.get(k).name
} if isinstance(form.cleaned_data.get(k), File)
for f in self.plugin_forms: else form.cleaned_data.get(k))
data.update({ for k in form.changed_data
k: (f.cleaned_data.get(k).name }
if isinstance(f.cleaned_data.get(k), File) meta_changed = {}
else f.cleaned_data.get(k)) for f in self.meta_forms:
for k in f.changed_data 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( 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: for f in self.plugin_forms:
f.subevent = self.object f.subevent = self.object
f.save() f.save()
@@ -628,6 +643,18 @@ class SubEventCreate(SubEventEditorMixin, EventPermissionRequiredMixin, CreateVi
else f.cleaned_data.get(k)) else f.cleaned_data.get(k))
for k in f.cleaned_data 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) form.instance.log_action('pretix.subevent.added', data=dict(data), user=self.request.user)
self.save_formset(form.instance) self.save_formset(form.instance)