mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-16 12:12:53 -06:00
Remove NumericInFilter and id__in filters
This commit is contained in:
parent
6cb5173e27
commit
3d616baf75
@ -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():
|
||||||
|
@ -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():
|
||||||
|
@ -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():
|
||||||
|
@ -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():
|
||||||
|
@ -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():
|
||||||
|
@ -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.
|
||||||
|
@ -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():
|
||||||
|
Loading…
Reference in New Issue
Block a user