mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-24 09:28:38 -06:00
Fixes 2427: Added filtering interfaces by vlan id(vlan=#) and vlan pk(vlan_id=#) (#2521)
This commit is contained in:
parent
f321e2c705
commit
82b4aad585
@ -635,6 +635,14 @@ class InterfaceFilter(django_filters.FilterSet):
|
|||||||
tag = django_filters.CharFilter(
|
tag = django_filters.CharFilter(
|
||||||
name='tags__slug',
|
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:
|
class Meta:
|
||||||
model = Interface
|
model = Interface
|
||||||
@ -649,6 +657,12 @@ class InterfaceFilter(django_filters.FilterSet):
|
|||||||
except Device.DoesNotExist:
|
except Device.DoesNotExist:
|
||||||
return queryset.none()
|
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):
|
def filter_type(self, queryset, name, value):
|
||||||
value = value.strip().lower()
|
value = value.strip().lower()
|
||||||
return {
|
return {
|
||||||
|
Loading…
Reference in New Issue
Block a user