Add device filter back

This commit is contained in:
Joseph Kennedy 2017-08-31 15:29:51 -04:00
parent f721d74768
commit afa6fb1c5f
2 changed files with 12 additions and 1 deletions

View File

@ -582,6 +582,10 @@ class InterfaceListFilter(django_filters.FilterSet):
method='search', method='search',
label='Search', label='Search',
) )
device = django_filters.CharFilter(
method='filter_device',
label='Device',
)
#site_id = django_filters.ModelMultipleChoiceFilter( #site_id = django_filters.ModelMultipleChoiceFilter(
# name='site', # name='site',
# method='_filter_site', # method='_filter_site',
@ -617,7 +621,7 @@ class InterfaceListFilter(django_filters.FilterSet):
def filter_site(self, queryset, name, value): def filter_site(self, queryset, name, value):
if not value.strip(): if not value.strip():
return queryset 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): def filter_role(self, queryset, name, value):
try: try:
@ -626,6 +630,12 @@ class InterfaceListFilter(django_filters.FilterSet):
except Device.DoesNotExist: except Device.DoesNotExist:
return queryset.none() 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): def filter_type(self, queryset, name, value):
value = value.strip().lower() value = value.strip().lower()
return { return {

View File

@ -1620,6 +1620,7 @@ class InterfaceFilterForm(BootstrapMixin, forms.Form):
class InterfaceListFilterForm(BootstrapMixin, forms.Form): class InterfaceListFilterForm(BootstrapMixin, forms.Form):
q = forms.CharField(required=False, label='Search') q = forms.CharField(required=False, label='Search')
site = forms.ModelChoiceField(required=False, queryset=Site.objects.all(), to_field_name='slug') 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) enabled = forms.ChoiceField(choices=add_blank_choice(IFACE_ENABLED_CHOICES), required=False)
#role = FilterChoiceField( #role = FilterChoiceField(
# required=False, # required=False,