1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Fixes 2427: Added filtering interfaces by vlan id(vlan=#) and vlan pk(vlan_id=#) ()

This commit is contained in:
Daniel Sheppard
2018-11-05 14:37:52 -06:00
committed by Jeremy Stretch
parent f321e2c705
commit 82b4aad585

@ -635,6 +635,14 @@ class InterfaceFilter(django_filters.FilterSet):
tag = django_filters.CharFilter(
name='tags__slug',
)
vlan_id = django_filters.CharFilter(
method='filter_vlan_by_pk',
name='vlan_pk',
)
vlan = django_filters.CharFilter(
method='filter_vlan_by_id',
name='vid',
)
class Meta:
model = Interface
@ -649,6 +657,12 @@ class InterfaceFilter(django_filters.FilterSet):
except Device.DoesNotExist:
return queryset.none()
def filter_vlan_by_pk(self, queryset, name, value):
return queryset.filter(Q(untagged_vlan_id=value) | Q(tagged_vlans=value))
def filter_vlan_by_id(self, queryset, name, value):
return queryset.filter(Q(untagged_vlan_id__vid=value) | Q(tagged_vlans__vid=value))
def filter_type(self, queryset, name, value):
value = value.strip().lower()
return {