From 313beb11222abc15152856e65460b7fa6540d8f4 Mon Sep 17 00:00:00 2001 From: Mira Weller Date: Fri, 25 Sep 2026 16:47:35 +0200 Subject: [PATCH] Clean up get_all_plugins / get_available_plugins calls --- src/pretix/control/views/event.py | 15 +++------------ src/pretix/control/views/organizer.py | 16 +++------------- 2 files changed, 6 insertions(+), 25 deletions(-) diff --git a/src/pretix/control/views/event.py b/src/pretix/control/views/event.py index 5cefb2c498..2a840dc4d0 100644 --- a/src/pretix/control/views/event.py +++ b/src/pretix/control/views/event.py @@ -363,12 +363,6 @@ class EventPlugins(EventSettingsViewMixin, EventPermissionRequiredMixin, Templat def get_object(self, queryset=None) -> Event: return self.request.event - def available_plugins(self, event): - from pretix.base.plugins import get_all_plugins - - return (p for p in get_all_plugins(event=event) if not p.name.startswith('.') - and getattr(p, 'visible', True)) - def prepare_links(self, pluginmeta, key): links = getattr(pluginmeta, key, []) try: @@ -391,14 +385,13 @@ class EventPlugins(EventSettingsViewMixin, EventPermissionRequiredMixin, Templat return [] def get_context_data(self, *args, **kwargs) -> dict: - from pretix.base.plugins import CATEGORY_LABELS, CATEGORY_ORDER + from pretix.base.plugins import iter_all_plugins, CATEGORY_LABELS, CATEGORY_ORDER context = super().get_context_data(*args, **kwargs) - plugins = list(self.available_plugins(self.object)) plugins_grouped = groupby( sorted( - plugins, + iter_all_plugins(event=self.object, only_visible=True), key=lambda p: ( str(getattr(p, 'category', _('Other'))), (0 if getattr(p, 'featured', False) else 1), @@ -439,9 +432,7 @@ class EventPlugins(EventSettingsViewMixin, EventPermissionRequiredMixin, Templat def post(self, request, *args, **kwargs): self.object = self.get_object() - plugins_available = { - p.module: p for p in self.available_plugins(self.object) - } + plugins_available = self.object.get_available_plugins() plugin_enabled = None with transaction.atomic(): diff --git a/src/pretix/control/views/organizer.py b/src/pretix/control/views/organizer.py index b37c43ab68..59a7a0aada 100644 --- a/src/pretix/control/views/organizer.py +++ b/src/pretix/control/views/organizer.py @@ -596,13 +596,6 @@ class OrganizerCreate(CreateView): }) -def available_plugins(organizer): - from pretix.base.plugins import get_all_plugins - - return (p for p in get_all_plugins(organizer=organizer) if not p.name.startswith('.') - and getattr(p, 'visible', True)) - - class OrganizerPlugins(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixin, TemplateView, SingleObjectMixin): model = Organizer context_object_name = 'organizer' @@ -634,10 +627,9 @@ class OrganizerPlugins(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixi return [] def get_context_data(self, *args, **kwargs) -> dict: - from pretix.base.plugins import CATEGORY_LABELS, CATEGORY_ORDER + from pretix.base.plugins import iter_all_plugins, CATEGORY_LABELS, CATEGORY_ORDER context = super().get_context_data(*args, **kwargs) - plugins = list(available_plugins(self.object)) active_counter = Counter() events_total = 0 @@ -647,7 +639,7 @@ class OrganizerPlugins(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixi active_counter[p] += 1 plugins_grouped = groupby( sorted( - plugins, + iter_all_plugins(organizer=self.object, only_visible=True), key=lambda p: ( str(getattr(p, 'category', _('Other'))), (0 if getattr(p, 'featured', False) else 1), @@ -684,9 +676,7 @@ class OrganizerPlugins(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixi def post(self, request, *args, **kwargs): self.object = self.get_object() - plugins_available = { - p.module: p for p in available_plugins(self.object) - } + plugins_available = self.object.get_available_plugins() choose_events_next = False with transaction.atomic(): for key, value in request.POST.items():