Filter cleanup

This commit is contained in:
Jeremy Stretch 2018-11-05 15:45:21 -05:00
parent ce7930abfd
commit ded90df01b

View File

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