From 3d616baf754ff96990438d0cc88f836aee7e5232 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 7 May 2019 13:07:01 -0400 Subject: [PATCH] Remove NumericInFilter and id__in filters --- netbox/circuits/filters.py | 14 ++-------- netbox/dcim/filters.py | 47 ++++++-------------------------- netbox/ipam/filters.py | 44 +++++++----------------------- netbox/secrets/filters.py | 8 ++---- netbox/tenancy/filters.py | 8 ++---- netbox/utilities/filters.py | 7 ----- netbox/virtualization/filters.py | 14 ++-------- 7 files changed, 29 insertions(+), 113 deletions(-) diff --git a/netbox/circuits/filters.py b/netbox/circuits/filters.py index 1ee0a9cf2..8fe0ba50c 100644 --- a/netbox/circuits/filters.py +++ b/netbox/circuits/filters.py @@ -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(): diff --git a/netbox/dcim/filters.py b/netbox/dcim/filters.py index 53163e7bd..f75686f88 100644 --- a/netbox/dcim/filters.py +++ b/netbox/dcim/filters.py @@ -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(): diff --git a/netbox/ipam/filters.py b/netbox/ipam/filters.py index 71597cfda..9145d4ca3 100644 --- a/netbox/ipam/filters.py +++ b/netbox/ipam/filters.py @@ -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(): diff --git a/netbox/secrets/filters.py b/netbox/secrets/filters.py index 4be77cb15..ad299a2d9 100644 --- a/netbox/secrets/filters.py +++ b/netbox/secrets/filters.py @@ -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(): diff --git a/netbox/tenancy/filters.py b/netbox/tenancy/filters.py index f3acb62a4..e193738a9 100644 --- a/netbox/tenancy/filters.py +++ b/netbox/tenancy/filters.py @@ -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(): diff --git a/netbox/utilities/filters.py b/netbox/utilities/filters.py index 614c09902..b5db210de 100644 --- a/netbox/utilities/filters.py +++ b/netbox/utilities/filters.py @@ -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. diff --git a/netbox/virtualization/filters.py b/netbox/virtualization/filters.py index 0e5ff6cd2..441783a31 100644 --- a/netbox/virtualization/filters.py +++ b/netbox/virtualization/filters.py @@ -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():