|
@@ -636,12 +636,12 @@ class InterfaceFilter(django_filters.FilterSet):
|
|
|
name='tags__slug',
|
|
name='tags__slug',
|
|
|
)
|
|
)
|
|
|
vlan_id = django_filters.CharFilter(
|
|
vlan_id = django_filters.CharFilter(
|
|
|
- method='filter_vlan_by_pk',
|
|
|
|
|
- name='vlan_pk',
|
|
|
|
|
|
|
+ method='filter_vlan_id',
|
|
|
|
|
+ label='Assigned VLAN'
|
|
|
)
|
|
)
|
|
|
vlan = django_filters.CharFilter(
|
|
vlan = django_filters.CharFilter(
|
|
|
- method='filter_vlan_by_id',
|
|
|
|
|
- name='vid',
|
|
|
|
|
|
|
+ method='filter_vlan',
|
|
|
|
|
+ label='Assigned VID'
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
class Meta:
|
|
class Meta:
|
|
@@ -657,11 +657,23 @@ 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_id(self, queryset, name, value):
|
|
|
|
|
+ value = value.strip()
|
|
|
|
|
+ if not value:
|
|
|
|
|
+ return queryset
|
|
|
|
|
+ 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_vlan(self, queryset, name, value):
|
|
|
|
|
+ value = value.strip()
|
|
|
|
|
+ if not value:
|
|
|
|
|
+ return queryset
|
|
|
|
|
+ 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()
|