Remove NumericInFilter and id__in filters

This commit is contained in:
Jeremy Stretch 2019-05-07 13:07:01 -04:00
parent 6cb5173e27
commit 3d616baf75
7 changed files with 29 additions and 113 deletions

View File

@ -4,16 +4,12 @@ from django.db.models import Q
from dcim.models import Site
from extras.filters import CustomFieldFilterSet
from tenancy.models import Tenant
from utilities.filters import NameSlugSearchFilterSet, NumericInFilter, TagFilter
from utilities.filters import NameSlugSearchFilterSet, TagFilter
from .constants import CIRCUIT_STATUS_CHOICES
from .models import Provider, Circuit, CircuitTermination, CircuitType
class ProviderFilter(CustomFieldFilterSet):
id__in = NumericInFilter(
field_name='id',
lookup_expr='in'
)
q = django_filters.CharFilter(
method='search',
label='Search',
@ -33,7 +29,7 @@ class ProviderFilter(CustomFieldFilterSet):
class Meta:
model = Provider
fields = ['name', 'slug', 'asn', 'account']
fields = ['id', 'name', 'slug', 'asn', 'account']
def search(self, queryset, name, value):
if not value.strip():
@ -55,10 +51,6 @@ class CircuitTypeFilter(NameSlugSearchFilterSet):
class CircuitFilter(CustomFieldFilterSet):
id__in = NumericInFilter(
field_name='id',
lookup_expr='in'
)
q = django_filters.CharFilter(
method='search',
label='Search',
@ -112,7 +104,7 @@ class CircuitFilter(CustomFieldFilterSet):
class Meta:
model = Circuit
fields = ['cid', 'install_date', 'commit_rate']
fields = ['id', 'cid', 'install_date', 'commit_rate']
def search(self, queryset, name, value):
if not value.strip():

View File

@ -1,6 +1,5 @@
import django_filters
from django.contrib.auth.models import User
from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import ObjectDoesNotExist
from django.db.models import Q
from netaddr import EUI
@ -10,7 +9,7 @@ from extras.filters import CustomFieldFilterSet
from tenancy.models import Tenant
from utilities.constants import COLOR_CHOICES
from utilities.filters import (
NameSlugSearchFilterSet, NullableCharFieldFilter, NumericInFilter, TagFilter, TreeNodeMultipleChoiceFilter
NameSlugSearchFilterSet, NullableCharFieldFilter, TagFilter, TreeNodeMultipleChoiceFilter
)
from virtualization.models import Cluster
from .constants import *
@ -41,10 +40,6 @@ class RegionFilter(NameSlugSearchFilterSet):
class SiteFilter(CustomFieldFilterSet):
id__in = NumericInFilter(
field_name='id',
lookup_expr='in'
)
q = django_filters.CharFilter(
method='search',
label='Search',
@ -78,7 +73,7 @@ class SiteFilter(CustomFieldFilterSet):
class Meta:
model = Site
fields = ['q', 'name', 'slug', 'facility', 'asn', 'contact_name', 'contact_phone', 'contact_email']
fields = ['id', 'name', 'slug', 'facility', 'asn', 'contact_name', 'contact_phone', 'contact_email']
def search(self, queryset, name, value):
if not value.strip():
@ -126,10 +121,6 @@ class RackRoleFilter(NameSlugSearchFilterSet):
class RackFilter(CustomFieldFilterSet):
id__in = NumericInFilter(
field_name='id',
lookup_expr='in'
)
q = django_filters.CharFilter(
method='search',
label='Search',
@ -185,8 +176,8 @@ class RackFilter(CustomFieldFilterSet):
class Meta:
model = Rack
fields = [
'name', 'serial', 'asset_tag', 'type', 'width', 'u_height', 'desc_units', 'outer_width', 'outer_depth',
'outer_unit',
'id', 'name', 'serial', 'asset_tag', 'type', 'width', 'u_height', 'desc_units', 'outer_width',
'outer_depth', 'outer_unit',
]
def search(self, queryset, name, value):
@ -202,10 +193,6 @@ class RackFilter(CustomFieldFilterSet):
class RackReservationFilter(django_filters.FilterSet):
id__in = NumericInFilter(
field_name='id',
lookup_expr='in'
)
q = django_filters.CharFilter(
method='search',
label='Search',
@ -259,7 +246,7 @@ class RackReservationFilter(django_filters.FilterSet):
class Meta:
model = RackReservation
fields = ['created']
fields = ['id', 'created']
def search(self, queryset, name, value):
if not value.strip():
@ -280,10 +267,6 @@ class ManufacturerFilter(NameSlugSearchFilterSet):
class DeviceTypeFilter(CustomFieldFilterSet):
id__in = NumericInFilter(
field_name='id',
lookup_expr='in'
)
q = django_filters.CharFilter(
method='search',
label='Search',
@ -327,7 +310,7 @@ class DeviceTypeFilter(CustomFieldFilterSet):
class Meta:
model = DeviceType
fields = [
'model', 'slug', 'part_number', 'u_height', 'is_full_depth', 'subdevice_role',
'id', 'model', 'slug', 'part_number', 'u_height', 'is_full_depth', 'subdevice_role',
]
def search(self, queryset, name, value):
@ -452,10 +435,6 @@ class PlatformFilter(NameSlugSearchFilterSet):
class DeviceFilter(CustomFieldFilterSet):
id__in = NumericInFilter(
field_name='id',
lookup_expr='in'
)
q = django_filters.CharFilter(
method='search',
label='Search',
@ -602,7 +581,7 @@ class DeviceFilter(CustomFieldFilterSet):
class Meta:
model = Device
fields = ['serial', 'face']
fields = ['id', 'serial', 'face']
def search(self, queryset, name, value):
if not value.strip():
@ -1088,10 +1067,6 @@ class InterfaceConnectionFilter(django_filters.FilterSet):
class PowerPanelFilter(django_filters.FilterSet):
id__in = NumericInFilter(
field_name='id',
lookup_expr='in'
)
q = django_filters.CharFilter(
method='search',
label='Search',
@ -1114,7 +1089,7 @@ class PowerPanelFilter(django_filters.FilterSet):
class Meta:
model = PowerPanel
fields = ['name']
fields = ['id', 'name']
def search(self, queryset, name, value):
if not value.strip():
@ -1126,10 +1101,6 @@ class PowerPanelFilter(django_filters.FilterSet):
class PowerFeedFilter(CustomFieldFilterSet):
id__in = NumericInFilter(
field_name='id',
lookup_expr='in'
)
q = django_filters.CharFilter(
method='search',
label='Search',
@ -1158,7 +1129,7 @@ class PowerFeedFilter(CustomFieldFilterSet):
class Meta:
model = PowerFeed
fields = ['name', 'status', 'type', 'supply', 'phase', 'voltage', 'amperage', 'power_factor']
fields = ['id', 'name', 'status', 'type', 'supply', 'phase', 'voltage', 'amperage', 'power_factor']
def search(self, queryset, name, value):
if not value.strip():

View File

@ -7,17 +7,13 @@ from netaddr.core import AddrFormatError
from dcim.models import Site, Device, Interface
from extras.filters import CustomFieldFilterSet
from tenancy.models import Tenant
from utilities.filters import NameSlugSearchFilterSet, NumericInFilter, TagFilter
from utilities.filters import NameSlugSearchFilterSet, TagFilter
from virtualization.models import VirtualMachine
from .constants import IPADDRESS_ROLE_CHOICES, IPADDRESS_STATUS_CHOICES, PREFIX_STATUS_CHOICES, VLAN_STATUS_CHOICES
from .models import Aggregate, IPAddress, Prefix, RIR, Role, Service, VLAN, VLANGroup, VRF
class VRFFilter(CustomFieldFilterSet):
id__in = NumericInFilter(
field_name='id',
lookup_expr='in'
)
q = django_filters.CharFilter(
method='search',
label='Search',
@ -34,6 +30,10 @@ class VRFFilter(CustomFieldFilterSet):
)
tag = TagFilter()
class Meta:
model = VRF
fields = ['id', 'name', 'rd', 'enforce_unique']
def search(self, queryset, name, value):
if not value.strip():
return queryset
@ -43,27 +43,15 @@ class VRFFilter(CustomFieldFilterSet):
Q(description__icontains=value)
)
class Meta:
model = VRF
fields = ['name', 'rd', 'enforce_unique']
class RIRFilter(NameSlugSearchFilterSet):
id__in = NumericInFilter(
field_name='id',
lookup_expr='in'
)
class Meta:
model = RIR
fields = ['name', 'slug', 'is_private']
fields = ['id', 'name', 'slug', 'is_private']
class AggregateFilter(CustomFieldFilterSet):
id__in = NumericInFilter(
field_name='id',
lookup_expr='in'
)
q = django_filters.CharFilter(
method='search',
label='Search',
@ -82,7 +70,7 @@ class AggregateFilter(CustomFieldFilterSet):
class Meta:
model = Aggregate
fields = ['family', 'date_added']
fields = ['id', 'family', 'date_added']
def search(self, queryset, name, value):
if not value.strip():
@ -108,10 +96,6 @@ class RoleFilter(NameSlugSearchFilterSet):
class PrefixFilter(CustomFieldFilterSet):
id__in = NumericInFilter(
field_name='id',
lookup_expr='in'
)
q = django_filters.CharFilter(
method='search',
label='Search',
@ -192,7 +176,7 @@ class PrefixFilter(CustomFieldFilterSet):
class Meta:
model = Prefix
fields = ['family', 'is_pool']
fields = ['id', 'family', 'is_pool']
def search(self, queryset, name, value):
if not value.strip():
@ -255,10 +239,6 @@ class PrefixFilter(CustomFieldFilterSet):
class IPAddressFilter(CustomFieldFilterSet):
id__in = NumericInFilter(
field_name='id',
lookup_expr='in'
)
q = django_filters.CharFilter(
method='search',
label='Search',
@ -331,7 +311,7 @@ class IPAddressFilter(CustomFieldFilterSet):
class Meta:
model = IPAddress
fields = ['family', 'dns_name']
fields = ['id', 'family', 'dns_name']
def search(self, queryset, name, value):
if not value.strip():
@ -396,10 +376,6 @@ class VLANGroupFilter(NameSlugSearchFilterSet):
class VLANFilter(CustomFieldFilterSet):
id__in = NumericInFilter(
field_name='id',
lookup_expr='in'
)
q = django_filters.CharFilter(
method='search',
label='Search',
@ -452,7 +428,7 @@ class VLANFilter(CustomFieldFilterSet):
class Meta:
model = VLAN
fields = ['vid', 'name']
fields = ['id', 'vid', 'name']
def search(self, queryset, name, value):
if not value.strip():

View File

@ -3,7 +3,7 @@ from django.db.models import Q
from dcim.models import Device
from extras.filters import CustomFieldFilterSet
from utilities.filters import NameSlugSearchFilterSet, NumericInFilter, TagFilter
from utilities.filters import NameSlugSearchFilterSet, TagFilter
from .models import Secret, SecretRole
@ -15,10 +15,6 @@ class SecretRoleFilter(NameSlugSearchFilterSet):
class SecretFilter(CustomFieldFilterSet):
id__in = NumericInFilter(
field_name='id',
lookup_expr='in'
)
q = django_filters.CharFilter(
method='search',
label='Search',
@ -47,7 +43,7 @@ class SecretFilter(CustomFieldFilterSet):
class Meta:
model = Secret
fields = ['name']
fields = ['id', 'name']
def search(self, queryset, name, value):
if not value.strip():

View File

@ -2,7 +2,7 @@ import django_filters
from django.db.models import Q
from extras.filters import CustomFieldFilterSet
from utilities.filters import NameSlugSearchFilterSet, NumericInFilter, TagFilter
from utilities.filters import NameSlugSearchFilterSet, TagFilter
from .models import Tenant, TenantGroup
@ -14,10 +14,6 @@ class TenantGroupFilter(NameSlugSearchFilterSet):
class TenantFilter(CustomFieldFilterSet):
id__in = NumericInFilter(
field_name='id',
lookup_expr='in'
)
q = django_filters.CharFilter(
method='search',
label='Search',
@ -36,7 +32,7 @@ class TenantFilter(CustomFieldFilterSet):
class Meta:
model = Tenant
fields = ['name', 'slug']
fields = ['id', 'name', 'slug']
def search(self, queryset, name, value):
if not value.strip():

View File

@ -55,13 +55,6 @@ class TreeNodeMultipleChoiceFilter(django_filters.ModelMultipleChoiceFilter):
return super().filter(qs, value)
class NumericInFilter(django_filters.BaseInFilter, django_filters.NumberFilter):
"""
Filters for a set of numeric values. Example: id__in=100,200,300
"""
pass
class NullableCharFieldFilter(django_filters.CharFilter):
"""
Allow matching on null field values by passing a special string used to signify NULL.

View File

@ -7,7 +7,7 @@ from netaddr.core import AddrFormatError
from dcim.models import DeviceRole, Interface, Platform, Region, Site
from extras.filters import CustomFieldFilterSet
from tenancy.models import Tenant
from utilities.filters import NameSlugSearchFilterSet, NumericInFilter, TagFilter, TreeNodeMultipleChoiceFilter
from utilities.filters import NameSlugSearchFilterSet, TagFilter, TreeNodeMultipleChoiceFilter
from .constants import VM_STATUS_CHOICES
from .models import Cluster, ClusterGroup, ClusterType, VirtualMachine
@ -27,10 +27,6 @@ class ClusterGroupFilter(NameSlugSearchFilterSet):
class ClusterFilter(CustomFieldFilterSet):
id__in = NumericInFilter(
field_name='id',
lookup_expr='in'
)
q = django_filters.CharFilter(
method='search',
label='Search',
@ -69,7 +65,7 @@ class ClusterFilter(CustomFieldFilterSet):
class Meta:
model = Cluster
fields = ['name']
fields = ['id', 'name']
def search(self, queryset, name, value):
if not value.strip():
@ -81,10 +77,6 @@ class ClusterFilter(CustomFieldFilterSet):
class VirtualMachineFilter(CustomFieldFilterSet):
id__in = NumericInFilter(
field_name='id',
lookup_expr='in'
)
q = django_filters.CharFilter(
method='search',
label='Search',
@ -175,7 +167,7 @@ class VirtualMachineFilter(CustomFieldFilterSet):
class Meta:
model = VirtualMachine
fields = ['name', 'cluster']
fields = ['id', 'name', 'cluster']
def search(self, queryset, name, value):
if not value.strip():