From fcceae5e1b5a0cceeca051e11ea350e875b417f0 Mon Sep 17 00:00:00 2001 From: Arthur Date: Wed, 26 Mar 2025 11:30:45 -0700 Subject: [PATCH] 18981 fix filtersets --- netbox/dcim/tables/devices.py | 2 +- netbox/extras/filtersets.py | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/netbox/dcim/tables/devices.py b/netbox/dcim/tables/devices.py index 06f6469d3..5cfb31750 100644 --- a/netbox/dcim/tables/devices.py +++ b/netbox/dcim/tables/devices.py @@ -59,7 +59,7 @@ MACADDRESS_COPY_BUTTON = """ # class DeviceRoleTable(NetBoxTable): - name = tables.Column( + name = columns.MPTTColumn( verbose_name=_('Name'), linkify=True ) diff --git a/netbox/extras/filtersets.py b/netbox/extras/filtersets.py index e63b6d673..1a4cf3a6f 100644 --- a/netbox/extras/filtersets.py +++ b/netbox/extras/filtersets.py @@ -8,7 +8,9 @@ from dcim.models import DeviceRole, DeviceType, Location, Platform, Region, Site from netbox.filtersets import BaseFilterSet, ChangeLoggedModelFilterSet, NetBoxModelFilterSet from tenancy.models import Tenant, TenantGroup from users.models import Group, User -from utilities.filters import ContentTypeFilter, MultiValueCharFilter, MultiValueNumberFilter +from utilities.filters import ( + ContentTypeFilter, MultiValueCharFilter, MultiValueNumberFilter, TreeNodeMultipleChoiceFilter +) from virtualization.models import Cluster, ClusterGroup, ClusterType from .choices import * from .filters import TagFilter @@ -583,14 +585,16 @@ class ConfigContextFilterSet(ChangeLoggedModelFilterSet): queryset=DeviceType.objects.all(), label=_('Device type'), ) - device_role_id = django_filters.ModelMultipleChoiceFilter( + device_role_id = TreeNodeMultipleChoiceFilter( field_name='roles', + lookup_expr='in', queryset=DeviceRole.objects.all(), label=_('Role'), ) - device_role = django_filters.ModelMultipleChoiceFilter( - field_name='roles__slug', + device_role = TreeNodeMultipleChoiceFilter( + field_name='roles', queryset=DeviceRole.objects.all(), + lookup_expr='in', to_field_name='slug', label=_('Role (slug)'), )