mirror of
https://github.com/pretix/pretix.git
synced 2026-05-09 15:54:03 +00:00
properly log added/removed when using UI
This commit is contained in:
@@ -3471,6 +3471,7 @@ class ReusableMediumUpdateView(OrganizerDetailViewMixin, OrganizerPermissionRequ
|
|||||||
|
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def form_valid(self, form):
|
def form_valid(self, form):
|
||||||
|
prev_linked_ops_pks = list(getattr(self.object, "linked_orderpositions").values_list("pk", flat=True))
|
||||||
result = super().form_valid(form)
|
result = super().form_valid(form)
|
||||||
if form.has_changed():
|
if form.has_changed():
|
||||||
data = {
|
data = {
|
||||||
@@ -3479,7 +3480,29 @@ class ReusableMediumUpdateView(OrganizerDetailViewMixin, OrganizerPermissionRequ
|
|||||||
}
|
}
|
||||||
if "linked_orderpositions" in data:
|
if "linked_orderpositions" in data:
|
||||||
data["linked_orderpositions"] = data["linked_orderpositions"].values_list("pk", flat=True)
|
data["linked_orderpositions"] = data["linked_orderpositions"].values_list("pk", flat=True)
|
||||||
self.object.log_action('pretix.reusable_medium.changed', user=self.request.user, data=data)
|
if prev_linked_ops_pks:
|
||||||
|
for op_pk in prev_linked_ops_pks:
|
||||||
|
if op_pk not in data["linked_orderpositions"]:
|
||||||
|
self.object.log_action(
|
||||||
|
'pretix.reusable_medium.linked_orderposition.removed',
|
||||||
|
user=self.request.user,
|
||||||
|
data={
|
||||||
|
'linked_orderposition': op_pk,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
for op_pk in data["linked_orderpositions"]:
|
||||||
|
if op_pk not in prev_linked_ops_pks:
|
||||||
|
self.object.log_action(
|
||||||
|
'pretix.reusable_medium.linked_orderposition.added',
|
||||||
|
user=self.request.user,
|
||||||
|
data={
|
||||||
|
'linked_orderposition': op_pk,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
if any(k != "linked_orderpositions" for k in form.changed_data):
|
||||||
|
# log change-action only for changes other than linked_orderpositions
|
||||||
|
del data["linked_orderpositions"]
|
||||||
|
self.object.log_action('pretix.reusable_medium.changed', user=self.request.user, data=data)
|
||||||
messages.success(self.request, _('Your changes have been saved.'))
|
messages.success(self.request, _('Your changes have been saved.'))
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user