From afa6fb1c5f658788ce1f17887efa099e0e1ebb84 Mon Sep 17 00:00:00 2001 From: Joseph Kennedy Date: Thu, 31 Aug 2017 15:29:51 -0400 Subject: [PATCH] Add device filter back --- netbox/dcim/filters.py | 12 +++++++++++- netbox/dcim/forms.py | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/netbox/dcim/filters.py b/netbox/dcim/filters.py index 04026a2d9..eef0eac29 100644 --- a/netbox/dcim/filters.py +++ b/netbox/dcim/filters.py @@ -582,6 +582,10 @@ class InterfaceListFilter(django_filters.FilterSet): method='search', label='Search', ) + device = django_filters.CharFilter( + method='filter_device', + label='Device', + ) #site_id = django_filters.ModelMultipleChoiceFilter( # name='site', # method='_filter_site', @@ -617,7 +621,7 @@ class InterfaceListFilter(django_filters.FilterSet): def filter_site(self, queryset, name, value): if not value.strip(): return queryset - return queryset.filter(interfaces__device_id__device__site__slug=value) + return queryset.filter(device_id__device__site__slug=value) def filter_role(self, queryset, name, value): try: @@ -626,6 +630,12 @@ class InterfaceListFilter(django_filters.FilterSet): except Device.DoesNotExist: return queryset.none() + def filter_device(self, queryset, name, value): + if not value.strip(): + return queryset + return queryset.filter(device__name__icontains=value) + ) + def filter_type(self, queryset, name, value): value = value.strip().lower() return { diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py index 68ed5eb45..4b657a6ff 100644 --- a/netbox/dcim/forms.py +++ b/netbox/dcim/forms.py @@ -1620,6 +1620,7 @@ class InterfaceFilterForm(BootstrapMixin, forms.Form): 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') + device = forms.CharField(required=False, label='Device name') enabled = forms.ChoiceField(choices=add_blank_choice(IFACE_ENABLED_CHOICES), required=False) #role = FilterChoiceField( # required=False,