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=#) (#2521)
This commit is contained in:
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 {
|
||||
|
Reference in New Issue
Block a user