diff --git a/netbox/circuits/filtersets.py b/netbox/circuits/filtersets.py index e48454a05..cbc04cf9e 100644 --- a/netbox/circuits/filtersets.py +++ b/netbox/circuits/filtersets.py @@ -7,7 +7,7 @@ from dcim.filtersets import CabledObjectFilterSet from dcim.models import Interface, Location, Region, Site, SiteGroup from ipam.models import ASN from netbox.filtersets import NetBoxModelFilterSet, OrganizationalModelFilterSet, PrimaryModelFilterSet -from netbox.plugins.registration import register_filterset +from utilities.filtersets import register_filterset from tenancy.filtersets import ContactModelFilterSet, TenancyFilterSet from utilities.filters import ( ContentTypeFilter, MultiValueCharFilter, MultiValueNumberFilter, TreeNodeMultipleChoiceFilter, diff --git a/netbox/core/filtersets.py b/netbox/core/filtersets.py index 3b9d15841..874af0f3d 100644 --- a/netbox/core/filtersets.py +++ b/netbox/core/filtersets.py @@ -4,7 +4,7 @@ from django.db.models import Q from django.utils.translation import gettext as _ from netbox.filtersets import BaseFilterSet, ChangeLoggedModelFilterSet, PrimaryModelFilterSet -from netbox.plugins.registration import register_filterset +from utilities.filtersets import register_filterset from netbox.utils import get_data_backend_choices from users.models import User from utilities.filters import ContentTypeFilter diff --git a/netbox/dcim/filtersets.py b/netbox/dcim/filtersets.py index 5c26e391f..7887c229b 100644 --- a/netbox/dcim/filtersets.py +++ b/netbox/dcim/filtersets.py @@ -14,7 +14,7 @@ from netbox.filtersets import ( AttributeFiltersMixin, BaseFilterSet, ChangeLoggedModelFilterSet, NestedGroupModelFilterSet, OrganizationalModelFilterSet, PrimaryModelFilterSet, NetBoxModelFilterSet, ) -from netbox.plugins.registration import register_filterset +from utilities.filtersets import register_filterset from tenancy.filtersets import ContactModelFilterSet, TenancyFilterSet from tenancy.models import * from users.filterset_mixins import OwnerFilterMixin diff --git a/netbox/extras/filtersets.py b/netbox/extras/filtersets.py index d196f9c9d..fb733fde6 100644 --- a/netbox/extras/filtersets.py +++ b/netbox/extras/filtersets.py @@ -6,7 +6,7 @@ from django.utils.translation import gettext as _ from core.models import DataSource, ObjectType from dcim.models import DeviceRole, DeviceType, Location, Platform, Region, Site, SiteGroup from netbox.filtersets import BaseFilterSet, ChangeLoggedModelFilterSet, NetBoxModelFilterSet, PrimaryModelFilterSet -from netbox.plugins.registration import register_filterset +from utilities.filtersets import register_filterset from tenancy.models import Tenant, TenantGroup from users.filterset_mixins import OwnerFilterMixin from users.models import Group, User diff --git a/netbox/ipam/filtersets.py b/netbox/ipam/filtersets.py index 0be28685f..550462119 100644 --- a/netbox/ipam/filtersets.py +++ b/netbox/ipam/filtersets.py @@ -14,7 +14,7 @@ from dcim.models import Device, Interface, Region, Site, SiteGroup from netbox.filtersets import ( ChangeLoggedModelFilterSet, OrganizationalModelFilterSet, NetBoxModelFilterSet, PrimaryModelFilterSet, ) -from netbox.plugins.registration import register_filterset +from utilities.filtersets import register_filterset from tenancy.filtersets import ContactModelFilterSet, TenancyFilterSet from utilities.filters import ( ContentTypeFilter, MultiValueCharFilter, MultiValueNumberFilter, NumericArrayFilter, TreeNodeMultipleChoiceFilter, diff --git a/netbox/netbox/plugins/registration.py b/netbox/netbox/plugins/registration.py index 3bd24c1b0..0001d50c9 100644 --- a/netbox/netbox/plugins/registration.py +++ b/netbox/netbox/plugins/registration.py @@ -7,7 +7,6 @@ from .navigation import PluginMenu, PluginMenuButton, PluginMenuItem from .templates import PluginTemplateExtension __all__ = ( - 'register_filterset', 'register_graphql_schema', 'register_menu', 'register_menu_items', @@ -45,18 +44,6 @@ def register_template_extensions(class_list): registry['plugins']['template_extensions'][model].append(template_extension) -def register_filterset(filterset_class): - """ - Decorator for registering a FilterSet with the application registry. - - Uses model identifier as key to match search index pattern. - """ - model = filterset_class._meta.model - label = f'{model._meta.app_label}.{model._meta.model_name}' - registry['filtersets'][label] = filterset_class - return filterset_class - - def register_menu(menu): if not isinstance(menu, PluginMenu): raise TypeError(_("{item} must be an instance of netbox.plugins.PluginMenuItem").format(item=menu)) diff --git a/netbox/tenancy/filtersets.py b/netbox/tenancy/filtersets.py index 983f6d255..5a5f65020 100644 --- a/netbox/tenancy/filtersets.py +++ b/netbox/tenancy/filtersets.py @@ -5,7 +5,7 @@ from django.utils.translation import gettext as _ from netbox.filtersets import ( NestedGroupModelFilterSet, NetBoxModelFilterSet, OrganizationalModelFilterSet, PrimaryModelFilterSet, ) -from netbox.plugins.registration import register_filterset +from utilities.filtersets import register_filterset from utilities.filters import ContentTypeFilter, TreeNodeMultipleChoiceFilter from .models import * diff --git a/netbox/users/filtersets.py b/netbox/users/filtersets.py index 88eec8a18..7497dbde4 100644 --- a/netbox/users/filtersets.py +++ b/netbox/users/filtersets.py @@ -6,7 +6,7 @@ from django.utils.translation import gettext as _ from core.models import ObjectType from extras.models import NotificationGroup from netbox.filtersets import BaseFilterSet -from netbox.plugins.registration import register_filterset +from utilities.filtersets import register_filterset from users.models import Group, ObjectPermission, Owner, OwnerGroup, Token, User from utilities.filters import ContentTypeFilter diff --git a/netbox/utilities/filtersets.py b/netbox/utilities/filtersets.py index e69de29bb..d828508d4 100644 --- a/netbox/utilities/filtersets.py +++ b/netbox/utilities/filtersets.py @@ -0,0 +1,17 @@ +from netbox.registry import registry + +__all__ = ( + 'register_filterset', +) + + +def register_filterset(filterset_class): + """ + Decorator for registering a FilterSet with the application registry. + + Uses model identifier as key to match search index pattern. + """ + model = filterset_class._meta.model + label = f'{model._meta.app_label}.{model._meta.model_name}' + registry['filtersets'][label] = filterset_class + return filterset_class diff --git a/netbox/utilities/tests/test_filter_modifiers.py b/netbox/utilities/tests/test_filter_modifiers.py index 0f7193dd7..70352e7d8 100644 --- a/netbox/utilities/tests/test_filter_modifiers.py +++ b/netbox/utilities/tests/test_filter_modifiers.py @@ -8,7 +8,7 @@ import dcim.filtersets # noqa: F401 - Import to register Device filterset from dcim.forms.filtersets import DeviceFilterForm from dcim.models import Device from netbox.filtersets import BaseFilterSet -from netbox.plugins.registration import register_filterset +from utilities.filtersets import register_filterset from users.models import User from utilities.forms.fields import TagFilterField from utilities.forms.mixins import FilterModifierMixin diff --git a/netbox/virtualization/filtersets.py b/netbox/virtualization/filtersets.py index 57330c3d2..ca1c9748e 100644 --- a/netbox/virtualization/filtersets.py +++ b/netbox/virtualization/filtersets.py @@ -10,7 +10,7 @@ from extras.filtersets import LocalConfigContextFilterSet from extras.models import ConfigTemplate from ipam.filtersets import PrimaryIPFilterSet from netbox.filtersets import NetBoxModelFilterSet, OrganizationalModelFilterSet, PrimaryModelFilterSet -from netbox.plugins.registration import register_filterset +from utilities.filtersets import register_filterset from tenancy.filtersets import TenancyFilterSet, ContactModelFilterSet from users.filterset_mixins import OwnerFilterMixin from utilities.filters import MultiValueCharFilter, MultiValueMACAddressFilter, TreeNodeMultipleChoiceFilter diff --git a/netbox/vpn/filtersets.py b/netbox/vpn/filtersets.py index d563dcf96..037018bd0 100644 --- a/netbox/vpn/filtersets.py +++ b/netbox/vpn/filtersets.py @@ -6,7 +6,7 @@ from core.models import ObjectType from dcim.models import Device, Interface from ipam.models import IPAddress, RouteTarget, VLAN from netbox.filtersets import NetBoxModelFilterSet, OrganizationalModelFilterSet, PrimaryModelFilterSet -from netbox.plugins.registration import register_filterset +from utilities.filtersets import register_filterset from tenancy.filtersets import ContactModelFilterSet, TenancyFilterSet from utilities.filters import ContentTypeFilter, MultiValueCharFilter, MultiValueNumberFilter from virtualization.models import VirtualMachine, VMInterface diff --git a/netbox/wireless/filtersets.py b/netbox/wireless/filtersets.py index a715d2d68..a529910f4 100644 --- a/netbox/wireless/filtersets.py +++ b/netbox/wireless/filtersets.py @@ -6,7 +6,7 @@ from dcim.base_filtersets import ScopedFilterSet from dcim.models import Interface from ipam.models import VLAN from netbox.filtersets import NestedGroupModelFilterSet, PrimaryModelFilterSet -from netbox.plugins.registration import register_filterset +from utilities.filtersets import register_filterset from tenancy.filtersets import TenancyFilterSet from utilities.filters import TreeNodeMultipleChoiceFilter from .choices import *