Răsfoiți Sursa

Remove NumericInFilter and id__in filters

Jeremy Stretch 6 ani în urmă
părinte
comite
3d616baf75

+ 3 - 11
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():

+ 9 - 38
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():

+ 10 - 34
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():

+ 2 - 6
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():

+ 2 - 6
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():

+ 0 - 7
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.

+ 3 - 11
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():