diff --git a/src/pretix/base/services/shredder.py b/src/pretix/base/services/shredder.py index d65930f8c..0411e6fa8 100644 --- a/src/pretix/base/services/shredder.py +++ b/src/pretix/base/services/shredder.py @@ -109,6 +109,9 @@ def export(event: Event, shredders: List[str], session_key=None, cfid=None) -> N def shred(self, event: Event, fileid: str, confirm_code: str, user: int=None, locale: str='en') -> None: steps = [] + if user: + user = User.objects.get(pk=user) + def set_progress(val): if not self.request.called_directly: self.update_state( @@ -137,6 +140,12 @@ def shred(self, event: Event, fileid: str, confirm_code: str, user: int=None, lo if event.logentry_set.filter(datetime__gte=parse(indexdata['time'])): raise ShredError(_("Something happened in your event after the export, please try again.")) + event.log_action( + 'pretix.event.shredder.started', user=user, data={ + 'indexdata': indexdata + } + ) + for i, shredder in enumerate(shredders): with language(locale): steps.append({'label': str(shredder.verbose_name), 'done': False}) @@ -154,8 +163,13 @@ def shred(self, event: Event, fileid: str, confirm_code: str, user: int=None, lo cf.file.delete(save=False) cf.delete() + event.log_action( + 'pretix.event.shredder.completed', user=user, data={ + 'indexdata': indexdata + } + ) + if user: - user = User.objects.get(pk=user) with language(user.locale): try: mail( diff --git a/src/pretix/control/logdisplay.py b/src/pretix/control/logdisplay.py index d9086e4a2..ee904891c 100644 --- a/src/pretix/control/logdisplay.py +++ b/src/pretix/control/logdisplay.py @@ -372,6 +372,8 @@ def pretixcontrol_logentry_display(sender: Event, logentry: LogEntry, **kwargs): 'pretix.event.comment': _('The event\'s internal comment has been updated.'), 'pretix.event.canceled': _('The event has been canceled.'), 'pretix.event.deleted': _('An event has been deleted.'), + 'pretix.event.shredder.started': _('A removal process for personal data has been started.'), + 'pretix.event.shredder.completed': _('A removal process for personal data has been completed.'), 'pretix.event.order.modified': _('The order details have been changed.'), 'pretix.event.order.unpaid': _('The order has been marked as unpaid.'), 'pretix.event.order.secret.changed': _('The order\'s secret has been changed.'),