From bb385024f02e39cc16d59cf3e646db4a704f30b5 Mon Sep 17 00:00:00 2001 From: Martin Hauser Date: Fri, 5 Sep 2025 21:02:49 +0200 Subject: [PATCH] refactor(core): Simplify plugin table rendering logic Extracts `PLUGIN_NAME_TEMPLATE` into `template_code.py` for better reusability across the codebase. Removes redundant logic from the `render_title_long` method to improve maintainability. Changes the `order_by` field in `plugins.py` from `name` to `title_long`. Fixes #20264 --- netbox/core/tables/plugins.py | 18 ++---------------- netbox/core/tables/template_code.py | 5 +++++ 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/netbox/core/tables/plugins.py b/netbox/core/tables/plugins.py index e1b80af42..8903227fe 100644 --- a/netbox/core/tables/plugins.py +++ b/netbox/core/tables/plugins.py @@ -1,10 +1,8 @@ import django_tables2 as tables -from django.urls import reverse -from django.utils.safestring import mark_safe from django.utils.translation import gettext_lazy as _ from netbox.tables import BaseTable, columns -from .template_code import PLUGIN_IS_INSTALLED +from .template_code import PLUGIN_IS_INSTALLED, PLUGIN_NAME_TEMPLATE __all__ = ( 'CatalogPluginTable', @@ -12,12 +10,6 @@ __all__ = ( ) -PLUGIN_NAME_TEMPLATE = """ - -{{ record.title_long }} -""" - - class PluginVersionTable(BaseTable): version = tables.Column( verbose_name=_('Version') @@ -93,10 +85,4 @@ class CatalogPluginTable(BaseTable): ) # List installed plugins first, then certified plugins, then # everything else (with each tranche ordered alphabetically) - order_by = ('-is_installed', '-is_certified', 'name') - - def render_title_long(self, value, record): - if record.static: - return value - url = reverse('core:plugin', args=[record.config_name]) - return mark_safe(f"{value}") + order_by = ('-is_installed', '-is_certified', 'title_long') diff --git a/netbox/core/tables/template_code.py b/netbox/core/tables/template_code.py index 9fc652c4c..c1b9fa74a 100644 --- a/netbox/core/tables/template_code.py +++ b/netbox/core/tables/template_code.py @@ -26,3 +26,8 @@ PLUGIN_IS_INSTALLED = """ {% endif %} """ + +PLUGIN_NAME_TEMPLATE = """ + +{{ record.title_long }} +"""