From d5ed1b87a12602a9d9d4570c8dd015250d959f44 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 28 Mar 2023 17:42:17 +0200 Subject: [PATCH] Create log entry for ordering items, categories and questions --- src/pretix/control/logdisplay.py | 3 +++ src/pretix/control/views/item.py | 34 ++++++++++++++++++++++++++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/pretix/control/logdisplay.py b/src/pretix/control/logdisplay.py index dc47855d6f..d8919144bb 100644 --- a/src/pretix/control/logdisplay.py +++ b/src/pretix/control/logdisplay.py @@ -470,6 +470,7 @@ def pretixcontrol_logentry_display(sender: Event, logentry: LogEntry, **kwargs): 'pretix.voucher.redeemed': _('The voucher has been redeemed in order {order_code}.'), 'pretix.event.item.added': _('The product has been created.'), 'pretix.event.item.changed': _('The product has been changed.'), + 'pretix.event.item.reordered': _('The product has been reordered.'), 'pretix.event.item.deleted': _('The product has been deleted.'), 'pretix.event.item.variation.added': _('The variation "{value}" has been created.'), 'pretix.event.item.variation.deleted': _('The variation "{value}" has been deleted.'), @@ -488,9 +489,11 @@ def pretixcontrol_logentry_display(sender: Event, logentry: LogEntry, **kwargs): 'pretix.event.category.added': _('The category has been added.'), 'pretix.event.category.deleted': _('The category has been deleted.'), 'pretix.event.category.changed': _('The category has been changed.'), + 'pretix.event.category.reordered': _('The category has been reordered.'), 'pretix.event.question.added': _('The question has been added.'), 'pretix.event.question.deleted': _('The question has been deleted.'), 'pretix.event.question.changed': _('The question has been changed.'), + 'pretix.event.question.reordered': _('The question has been reordered.'), 'pretix.event.discount.added': _('The discount has been added.'), 'pretix.event.discount.deleted': _('The discount has been deleted.'), 'pretix.event.discount.changed': _('The discount has been changed.'), diff --git a/src/pretix/control/views/item.py b/src/pretix/control/views/item.py index 1504e0b808..a1837ffb0f 100644 --- a/src/pretix/control/views/item.py +++ b/src/pretix/control/views/item.py @@ -136,6 +136,11 @@ def item_move(request, item, up=True): if item.position != i: item.position = i item.save() + item.log_action( + 'pretix.event.item.reordered', user=request.user, data={ + 'position': i, + } + ) messages.success(request, _('The order of items has been updated.')) @@ -185,6 +190,11 @@ def reorder_items(request, organizer, event): if pos != i.position: # Save unneccessary UPDATE queries i.position = pos i.save(update_fields=['position']) + i.log_action( + 'pretix.event.item.reordered', user=request.user, data={ + 'position': i, + } + ) return HttpResponse() @@ -243,7 +253,7 @@ class CategoryUpdate(EventPermissionRequiredMixin, UpdateView): messages.success(self.request, _('Your changes have been saved.')) if form.has_changed(): self.object.log_action( - 'pretix.event.category.changed', user=self.request.user, data={ + 'pretix.event.category.reordered', user=self.request.user, data={ k: form.cleaned_data.get(k) for k in form.changed_data } ) @@ -338,6 +348,11 @@ def category_move(request, category, up=True): if cat.position != i: cat.position = i cat.save() + cat.log_action( + 'pretix.event.category.reordered', user=request.user, data={ + 'position': i, + } + ) messages.success(request, _('The order of categories has been updated.')) @@ -381,6 +396,11 @@ def reorder_categories(request, organizer, event): if pos != c.position: # Save unneccessary UPDATE queries c.position = pos c.save(update_fields=['position']) + c.log_action( + 'pretix.event.category.reordered', user=request.user, data={ + 'position': pos, + } + ) return HttpResponse() @@ -510,6 +530,11 @@ def reorder_questions(request, organizer, event): if pos != q.position: # Save unneccessary UPDATE queries q.position = pos q.save(update_fields=['position']) + q.log_action( + 'pretix.event.question.reordered', user=request.user, data={ + 'position': pos, + } + ) system_question_order = {} for s in ('attendee_name_parts', 'attendee_email', 'company', 'street', 'zipcode', 'city', 'country'): @@ -518,6 +543,11 @@ def reorder_questions(request, organizer, event): else: system_question_order[s] = -1 request.event.settings.system_question_order = system_question_order + request.event.log_action( + 'pretix.event.settings', user=request.user, data={ + 'system_question_order': system_question_order, + } + ) return HttpResponse() @@ -731,7 +761,7 @@ class QuestionUpdate(EventPermissionRequiredMixin, QuestionMixin, UpdateView): if form.has_changed(): self.object.log_action( - 'pretix.event.question.changed', user=self.request.user, data={ + 'pretix.event.question.reordered', user=self.request.user, data={ k: form.cleaned_data.get(k) for k in form.changed_data } )