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

View File

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

View File

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

View File

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

View File

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

View File

@ -55,13 +55,6 @@ class TreeNodeMultipleChoiceFilter(django_filters.ModelMultipleChoiceFilter):
return super().filter(qs, value) 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): class NullableCharFieldFilter(django_filters.CharFilter):
""" """
Allow matching on null field values by passing a special string used to signify NULL. 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 dcim.models import DeviceRole, Interface, Platform, Region, Site
from extras.filters import CustomFieldFilterSet from extras.filters import CustomFieldFilterSet
from tenancy.models import Tenant 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 .constants import VM_STATUS_CHOICES
from .models import Cluster, ClusterGroup, ClusterType, VirtualMachine from .models import Cluster, ClusterGroup, ClusterType, VirtualMachine
@ -27,10 +27,6 @@ class ClusterGroupFilter(NameSlugSearchFilterSet):
class ClusterFilter(CustomFieldFilterSet): class ClusterFilter(CustomFieldFilterSet):
id__in = NumericInFilter(
field_name='id',
lookup_expr='in'
)
q = django_filters.CharFilter( q = django_filters.CharFilter(
method='search', method='search',
label='Search', label='Search',
@ -69,7 +65,7 @@ class ClusterFilter(CustomFieldFilterSet):
class Meta: class Meta:
model = Cluster model = Cluster
fields = ['name'] fields = ['id', 'name']
def search(self, queryset, name, value): def search(self, queryset, name, value):
if not value.strip(): if not value.strip():
@ -81,10 +77,6 @@ class ClusterFilter(CustomFieldFilterSet):
class VirtualMachineFilter(CustomFieldFilterSet): class VirtualMachineFilter(CustomFieldFilterSet):
id__in = NumericInFilter(
field_name='id',
lookup_expr='in'
)
q = django_filters.CharFilter( q = django_filters.CharFilter(
method='search', method='search',
label='Search', label='Search',
@ -175,7 +167,7 @@ class VirtualMachineFilter(CustomFieldFilterSet):
class Meta: class Meta:
model = VirtualMachine model = VirtualMachine
fields = ['name', 'cluster'] fields = ['id', 'name', 'cluster']
def search(self, queryset, name, value): def search(self, queryset, name, value):
if not value.strip(): if not value.strip():