1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Move TagFilter to PrimaryFilterSet

This commit is contained in:
jeremystretch
2022-01-25 16:11:49 -05:00
parent 497afcc1e4
commit acc9ca7d7d
7 changed files with 5 additions and 57 deletions

View File

@ -3,7 +3,6 @@ from django.db.models import Q
from dcim.filtersets import CableTerminationFilterSet
from dcim.models import Region, Site, SiteGroup
from extras.filters import TagFilter
from netbox.filtersets import ChangeLoggedModelFilterSet, OrganizationalModelFilterSet, PrimaryModelFilterSet
from tenancy.filtersets import TenancyFilterSet
from utilities.filters import TreeNodeMultipleChoiceFilter
@ -61,7 +60,6 @@ class ProviderFilterSet(PrimaryModelFilterSet):
to_field_name='slug',
label='Site (slug)',
)
tag = TagFilter()
class Meta:
model = Provider
@ -94,7 +92,6 @@ class ProviderNetworkFilterSet(PrimaryModelFilterSet):
to_field_name='slug',
label='Provider (slug)',
)
tag = TagFilter()
class Meta:
model = ProviderNetwork
@ -112,7 +109,6 @@ class ProviderNetworkFilterSet(PrimaryModelFilterSet):
class CircuitTypeFilterSet(OrganizationalModelFilterSet):
tag = TagFilter()
class Meta:
model = CircuitType
@ -190,7 +186,6 @@ class CircuitFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
to_field_name='slug',
label='Site (slug)',
)
tag = TagFilter()
class Meta:
model = Circuit

View File

@ -1,7 +1,6 @@
import django_filters
from django.contrib.auth.models import User
from extras.filters import TagFilter
from extras.filtersets import LocalConfigContextFilterSet
from ipam.models import ASN, VRF
from netbox.filtersets import (
@ -79,7 +78,6 @@ class RegionFilterSet(OrganizationalModelFilterSet):
to_field_name='slug',
label='Parent region (slug)',
)
tag = TagFilter()
class Meta:
model = Region
@ -97,7 +95,6 @@ class SiteGroupFilterSet(OrganizationalModelFilterSet):
to_field_name='slug',
label='Parent site group (slug)',
)
tag = TagFilter()
class Meta:
model = SiteGroup
@ -148,7 +145,6 @@ class SiteFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
queryset=ASN.objects.all(),
label='AS (ID)',
)
tag = TagFilter()
class Meta:
model = Site
@ -225,7 +221,6 @@ class LocationFilterSet(TenancyFilterSet, OrganizationalModelFilterSet):
to_field_name='slug',
label='Location (slug)',
)
tag = TagFilter()
class Meta:
model = Location
@ -241,7 +236,6 @@ class LocationFilterSet(TenancyFilterSet, OrganizationalModelFilterSet):
class RackRoleFilterSet(OrganizationalModelFilterSet):
tag = TagFilter()
class Meta:
model = RackRole
@ -325,7 +319,6 @@ class RackFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
serial = django_filters.CharFilter(
lookup_expr='iexact'
)
tag = TagFilter()
class Meta:
model = Rack
@ -389,7 +382,6 @@ class RackReservationFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
to_field_name='username',
label='User (name)',
)
tag = TagFilter()
class Meta:
model = RackReservation
@ -407,7 +399,6 @@ class RackReservationFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
class ManufacturerFilterSet(OrganizationalModelFilterSet):
tag = TagFilter()
class Meta:
model = Manufacturer
@ -461,7 +452,6 @@ class DeviceTypeFilterSet(PrimaryModelFilterSet):
method='_device_bays',
label='Has device bays',
)
tag = TagFilter()
class Meta:
model = DeviceType
@ -546,7 +536,6 @@ class ModuleTypeFilterSet(PrimaryModelFilterSet):
method='_pass_through_ports',
label='Has pass-through ports',
)
tag = TagFilter()
class Meta:
model = ModuleType
@ -732,7 +721,6 @@ class InventoryItemTemplateFilterSet(ChangeLoggedModelFilterSet, DeviceTypeCompo
class DeviceRoleFilterSet(OrganizationalModelFilterSet):
tag = TagFilter()
class Meta:
model = DeviceRole
@ -751,7 +739,6 @@ class PlatformFilterSet(OrganizationalModelFilterSet):
to_field_name='slug',
label='Manufacturer (slug)',
)
tag = TagFilter()
class Meta:
model = Platform
@ -916,7 +903,6 @@ class DeviceFilterSet(PrimaryModelFilterSet, TenancyFilterSet, LocalConfigContex
method='_device_bays',
label='Has device bays',
)
tag = TagFilter()
class Meta:
model = Device
@ -990,7 +976,6 @@ class ModuleFilterSet(PrimaryModelFilterSet):
queryset=Device.objects.all(),
label='Device (ID)',
)
tag = TagFilter()
class Meta:
model = Module
@ -1080,7 +1065,6 @@ class DeviceComponentFilterSet(django_filters.FilterSet):
to_field_name='name',
label='Virtual Chassis',
)
tag = TagFilter()
def search(self, queryset, name, value):
if not value.strip():
@ -1202,7 +1186,6 @@ class InterfaceFilterSet(PrimaryModelFilterSet, DeviceComponentFilterSet, CableT
)
mac_address = MultiValueMACAddressFilter()
wwn = MultiValueWWNFilter()
tag = TagFilter()
vlan_id = django_filters.CharFilter(
method='filter_vlan_id',
label='Assigned VLAN'
@ -1377,7 +1360,6 @@ class InventoryItemFilterSet(PrimaryModelFilterSet, DeviceComponentFilterSet):
class InventoryItemRoleFilterSet(OrganizationalModelFilterSet):
tag = TagFilter()
class Meta:
model = InventoryItemRole
@ -1447,7 +1429,6 @@ class VirtualChassisFilterSet(PrimaryModelFilterSet):
to_field_name='slug',
label='Tenant (slug)',
)
tag = TagFilter()
class Meta:
model = VirtualChassis
@ -1505,7 +1486,6 @@ class CableFilterSet(TenancyFilterSet, PrimaryModelFilterSet):
method='filter_device',
field_name='device__site__slug'
)
tag = TagFilter()
class Meta:
model = Cable
@ -1571,7 +1551,6 @@ class PowerPanelFilterSet(PrimaryModelFilterSet):
lookup_expr='in',
label='Location (ID)',
)
tag = TagFilter()
class Meta:
model = PowerPanel
@ -1641,7 +1620,6 @@ class PowerFeedFilterSet(PrimaryModelFilterSet, CableTerminationFilterSet, PathE
choices=PowerFeedStatusChoices,
null_value=None
)
tag = TagFilter()
class Meta:
model = PowerFeed

View File

@ -6,7 +6,6 @@ from django.db.models import Q
from netaddr.core import AddrFormatError
from dcim.models import Device, Interface, Region, Site, SiteGroup
from extras.filters import TagFilter
from netbox.filtersets import ChangeLoggedModelFilterSet, OrganizationalModelFilterSet, PrimaryModelFilterSet
from tenancy.filtersets import TenancyFilterSet
from utilities.filters import (
@ -63,7 +62,6 @@ class VRFFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
to_field_name='name',
label='Export target (name)',
)
tag = TagFilter()
def search(self, queryset, name, value):
if not value.strip():
@ -106,7 +104,6 @@ class RouteTargetFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
to_field_name='rd',
label='Export VRF (RD)',
)
tag = TagFilter()
def search(self, queryset, name, value):
if not value.strip():
@ -122,7 +119,6 @@ class RouteTargetFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
class RIRFilterSet(OrganizationalModelFilterSet):
tag = TagFilter()
class Meta:
model = RIR
@ -152,7 +148,6 @@ class AggregateFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
to_field_name='slug',
label='RIR (slug)',
)
tag = TagFilter()
class Meta:
model = Aggregate
@ -218,7 +213,6 @@ class RoleFilterSet(OrganizationalModelFilterSet):
method='search',
label='Search',
)
tag = TagFilter()
class Meta:
model = Role
@ -347,7 +341,6 @@ class PrefixFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
choices=PrefixStatusChoices,
null_value=None
)
tag = TagFilter()
class Meta:
model = Prefix
@ -453,7 +446,6 @@ class IPRangeFilterSet(TenancyFilterSet, PrimaryModelFilterSet):
choices=IPRangeStatusChoices,
null_value=None
)
tag = TagFilter()
class Meta:
model = IPRange
@ -578,7 +570,6 @@ class IPAddressFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
role = django_filters.MultipleChoiceFilter(
choices=IPAddressRoleChoices
)
tag = TagFilter()
class Meta:
model = IPAddress
@ -664,7 +655,6 @@ class FHRPGroupFilterSet(PrimaryModelFilterSet):
queryset=IPAddress.objects.all(),
method='filter_related_ip'
)
tag = TagFilter()
class Meta:
model = FHRPGroup
@ -737,7 +727,6 @@ class VLANGroupFilterSet(OrganizationalModelFilterSet):
cluster = django_filters.NumberFilter(
method='filter_scope'
)
tag = TagFilter()
class Meta:
model = VLANGroup
@ -832,7 +821,6 @@ class VLANFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
queryset=VirtualMachine.objects.all(),
method='get_for_virtualmachine'
)
tag = TagFilter()
class Meta:
model = VLAN
@ -864,7 +852,6 @@ class ServiceTemplateFilterSet(PrimaryModelFilterSet):
field_name='ports',
lookup_expr='contains'
)
tag = TagFilter()
class Meta:
model = ServiceTemplate
@ -906,7 +893,6 @@ class ServiceFilterSet(PrimaryModelFilterSet):
field_name='ports',
lookup_expr='contains'
)
tag = TagFilter()
class Meta:
model = Service

View File

@ -120,6 +120,10 @@ class BaseFilterSet(django_filters.FilterSet):
def get_additional_lookups(cls, existing_filter_name, existing_filter):
new_filters = {}
# Skip on abstract models
if not cls._meta.model:
return {}
# Skip nonstandard lookup expressions
if existing_filter.method is not None or existing_filter.lookup_expr not in ['exact', 'in']:
return {}
@ -214,6 +218,7 @@ class ChangeLoggedModelFilterSet(BaseFilterSet):
class PrimaryModelFilterSet(ChangeLoggedModelFilterSet):
tag = TagFilter()
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)

View File

@ -1,7 +1,6 @@
import django_filters
from django.db.models import Q
from extras.filters import TagFilter
from netbox.filtersets import ChangeLoggedModelFilterSet, OrganizationalModelFilterSet, PrimaryModelFilterSet
from utilities.filters import ContentTypeFilter, TreeNodeMultipleChoiceFilter
from .models import *
@ -33,7 +32,6 @@ class TenantGroupFilterSet(OrganizationalModelFilterSet):
to_field_name='slug',
label='Tenant group (slug)',
)
tag = TagFilter()
class Meta:
model = TenantGroup
@ -58,7 +56,6 @@ class TenantFilterSet(PrimaryModelFilterSet):
to_field_name='slug',
label='Tenant group (slug)',
)
tag = TagFilter()
class Meta:
model = Tenant
@ -119,7 +116,6 @@ class ContactGroupFilterSet(OrganizationalModelFilterSet):
to_field_name='slug',
label='Contact group (slug)',
)
tag = TagFilter()
class Meta:
model = ContactGroup
@ -127,7 +123,6 @@ class ContactGroupFilterSet(OrganizationalModelFilterSet):
class ContactRoleFilterSet(OrganizationalModelFilterSet):
tag = TagFilter()
class Meta:
model = ContactRole
@ -152,7 +147,6 @@ class ContactFilterSet(PrimaryModelFilterSet):
to_field_name='slug',
label='Contact group (slug)',
)
tag = TagFilter()
class Meta:
model = Contact

View File

@ -2,7 +2,6 @@ import django_filters
from django.db.models import Q
from dcim.models import DeviceRole, Platform, Region, Site, SiteGroup
from extras.filters import TagFilter
from extras.filtersets import LocalConfigContextFilterSet
from netbox.filtersets import OrganizationalModelFilterSet, PrimaryModelFilterSet
from tenancy.filtersets import TenancyFilterSet
@ -20,7 +19,6 @@ __all__ = (
class ClusterTypeFilterSet(OrganizationalModelFilterSet):
tag = TagFilter()
class Meta:
model = ClusterType
@ -28,7 +26,6 @@ class ClusterTypeFilterSet(OrganizationalModelFilterSet):
class ClusterGroupFilterSet(OrganizationalModelFilterSet):
tag = TagFilter()
class Meta:
model = ClusterGroup
@ -96,7 +93,6 @@ class ClusterFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
to_field_name='slug',
label='Cluster type (slug)',
)
tag = TagFilter()
class Meta:
model = Cluster
@ -217,7 +213,6 @@ class VirtualMachineFilterSet(PrimaryModelFilterSet, TenancyFilterSet, LocalConf
method='_has_primary_ip',
label='Has a primary IP',
)
tag = TagFilter()
class Meta:
model = VirtualMachine
@ -278,7 +273,6 @@ class VMInterfaceFilterSet(PrimaryModelFilterSet):
mac_address = MultiValueMACAddressFilter(
label='MAC address',
)
tag = TagFilter()
class Meta:
model = VMInterface

View File

@ -2,7 +2,6 @@ import django_filters
from django.db.models import Q
from dcim.choices import LinkStatusChoices
from extras.filters import TagFilter
from ipam.models import VLAN
from netbox.filtersets import OrganizationalModelFilterSet, PrimaryModelFilterSet
from utilities.filters import MultiValueNumberFilter, TreeNodeMultipleChoiceFilter
@ -25,7 +24,6 @@ class WirelessLANGroupFilterSet(OrganizationalModelFilterSet):
queryset=WirelessLANGroup.objects.all(),
to_field_name='slug'
)
tag = TagFilter()
class Meta:
model = WirelessLANGroup
@ -57,7 +55,6 @@ class WirelessLANFilterSet(PrimaryModelFilterSet):
auth_cipher = django_filters.MultipleChoiceFilter(
choices=WirelessAuthCipherChoices
)
tag = TagFilter()
class Meta:
model = WirelessLAN
@ -89,7 +86,6 @@ class WirelessLinkFilterSet(PrimaryModelFilterSet):
auth_cipher = django_filters.MultipleChoiceFilter(
choices=WirelessAuthCipherChoices
)
tag = TagFilter()
class Meta:
model = WirelessLink