mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-07 16:18:16 -06:00
Add device_role filter
This commit is contained in:
parent
d7f52bc24b
commit
6a5764070d
@ -591,11 +591,10 @@ class InterfaceListFilter(django_filters.FilterSet):
|
||||
# name='device_role',
|
||||
# label='Role (ID)',
|
||||
#)
|
||||
#role = django_filters.ModelMultipleChoiceFilter(
|
||||
# method='_filter_role',
|
||||
# name='device_role',
|
||||
# label='Role (slug)',
|
||||
#)
|
||||
role = django_filters.ModelMultipleChoiceFilter(
|
||||
method='_filter_role',
|
||||
label='Role (slug)',
|
||||
)
|
||||
type = django_filters.CharFilter(
|
||||
method='filter_type',
|
||||
label='Interface type',
|
||||
@ -615,11 +614,9 @@ class InterfaceListFilter(django_filters.FilterSet):
|
||||
return queryset.filter(device__site__slug=value)
|
||||
|
||||
def filter_role(self, queryset, name, value):
|
||||
try:
|
||||
device = Device.objects.filter(name=value).distinct()
|
||||
if not value.strip():
|
||||
return queryset
|
||||
except Device.DoesNotExist:
|
||||
return queryset.none()
|
||||
return queryset.filter(device_role__slug=value)
|
||||
|
||||
def filter_type(self, queryset, name, value):
|
||||
value = value.strip().lower()
|
||||
|
@ -1621,11 +1621,11 @@ class InterfaceListFilterForm(BootstrapMixin, forms.Form):
|
||||
q = forms.CharField(required=False, label='Search')
|
||||
site = forms.ModelChoiceField(required=False, queryset=Site.objects.all(), to_field_name='slug')
|
||||
enabled = forms.ChoiceField(choices=add_blank_choice(IFACE_ENABLED_CHOICES), required=False)
|
||||
#role = FilterChoiceField(
|
||||
# required=False,
|
||||
# queryset=DeviceRole.objects.annotate(filter_count=Count('devices')),
|
||||
# to_field_name='slug'
|
||||
#)
|
||||
role = FilterChoiceField(
|
||||
required=False,
|
||||
queryset=DeviceRole.objects.annotate(filter_count=Count('devices')),
|
||||
to_field_name='slug'
|
||||
)
|
||||
|
||||
|
||||
#
|
||||
|
Loading…
Reference in New Issue
Block a user