From 1b473e33e9ad1debbcf8fc1b747a12bf950bea58 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 13 Jan 2026 11:43:32 +0100 Subject: [PATCH] Show plugin permissions --- src/pretix/control/forms/organizer.py | 35 +++++++++++++-------------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/src/pretix/control/forms/organizer.py b/src/pretix/control/forms/organizer.py index 90bad84257..696e0428ac 100644 --- a/src/pretix/control/forms/organizer.py +++ b/src/pretix/control/forms/organizer.py @@ -313,6 +313,21 @@ class PermissionMultipleChoiceField(forms.MultipleChoiceField): class TeamForm(forms.ModelForm): + def _make_label(self, p): + source = '{}' + params = [p.label] + + if p.plugin_name: + source = ' ' + source + params.insert(0, _("Provided by a plugin")) + + if p.help_text: + source += ' ' + params.append(p.help_text) + + source += ' ({})' + params.append(p.name) + return format_html(source, *params) def __init__(self, *args, **kwargs): organizer = kwargs.pop('organizer') @@ -323,15 +338,7 @@ class TeamForm(forms.ModelForm): self.fields['limit_event_permissions'] = PermissionMultipleChoiceField( label=self.fields['limit_event_permissions'].label, choices=[ - ( - p.name, - format_html( - '{} ({})', - p.label, p.help_text, p.name - ) if p.help_text - else format_html('{} ({})', p.label, p.name) - ) - for p in get_all_event_permissions().values() + (p.name, self._make_label(p)) for p in get_all_event_permissions().values() ], widget=forms.CheckboxSelectMultiple(attrs={ 'data-inverse-dependency': '#id_all_event_permissions', @@ -342,15 +349,7 @@ class TeamForm(forms.ModelForm): self.fields['limit_organizer_permissions'] = PermissionMultipleChoiceField( label=self.fields['limit_organizer_permissions'].label, choices=[ - ( - p.name, - format_html( - '{} ({})', - p.label, p.help_text, p.name - ) if p.help_text - else format_html('{} ({})', p.label, p.name) - ) - for p in get_all_organizer_permissions().values() + (p.name, self._make_label(p)) for p in get_all_organizer_permissions().values() ], widget=forms.CheckboxSelectMultiple(attrs={ 'data-inverse-dependency': '#id_all_organizer_permissions',