diff --git a/src/pretix/control/views/organizer.py b/src/pretix/control/views/organizer.py index 54463ffbf..fe98d0e95 100644 --- a/src/pretix/control/views/organizer.py +++ b/src/pretix/control/views/organizer.py @@ -642,15 +642,26 @@ class TeamDeleteView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixin, def delete(self, request, *args, **kwargs): success_url = self.get_success_url() self.object = self.get_object() - if self.is_allowed(): - self.object.log_action('pretix.team.deleted', user=self.request.user) - self.object.delete() - messages.success(request, _('The selected team has been deleted.')) - return redirect(success_url) - else: + if not self.is_allowed(): messages.error(request, _('The selected team cannot be deleted.')) return redirect(success_url) + try: + self.object.log_action('pretix.team.deleted', user=self.request.user) + self.object.delete() + except ProtectedError: + messages.error( + self.request, + _( + 'The team could not be deleted as some constraints (e.g. data created by ' + 'plug-ins) do not allow it.' + ) + ) + return redirect(success_url) + + messages.success(request, _('The selected team has been deleted.')) + return redirect(success_url) + class TeamMemberView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixin, DetailView): template_name = 'pretixcontrol/organizers/team_members.html'