From c8af43f3f24371659d18382226e3f34dbe60e7b5 Mon Sep 17 00:00:00 2001 From: Jason Novinger Date: Thu, 20 Nov 2025 05:22:27 -0600 Subject: [PATCH] Address PR feedback: Move FilterModifierMixin into base filter form classes Incorporates FilterModifierMixin into NetBoxModelFilterSetForm and FilterForm, making filter modifiers automatic for all filter forms throughout the application. --- netbox/circuits/forms/filtersets.py | 22 ++++---- netbox/core/forms/filtersets.py | 11 ++-- netbox/dcim/forms/filtersets.py | 66 +++++++++++------------ netbox/extras/forms/filtersets.py | 31 ++++++----- netbox/ipam/forms/filtersets.py | 33 ++++++------ netbox/netbox/forms/filtersets.py | 3 +- netbox/tenancy/forms/filtersets.py | 13 +++-- netbox/users/forms/filtersets.py | 13 +++-- netbox/utilities/forms/forms.py | 4 +- netbox/virtualization/forms/filtersets.py | 12 ++--- netbox/vpn/forms/filtersets.py | 21 ++++---- netbox/wireless/forms/filtersets.py | 7 ++- 12 files changed, 112 insertions(+), 124 deletions(-) diff --git a/netbox/circuits/forms/filtersets.py b/netbox/circuits/forms/filtersets.py index 6d3a7e739..a5b037d89 100644 --- a/netbox/circuits/forms/filtersets.py +++ b/netbox/circuits/forms/filtersets.py @@ -13,7 +13,6 @@ from netbox.forms import NetBoxModelFilterSetForm, OrganizationalModelFilterSetF from tenancy.forms import TenancyFilterForm, ContactModelFilterForm from utilities.forms import add_blank_choice, register_filterset from utilities.forms.fields import ColorField, DynamicModelMultipleChoiceField, TagFilterField -from utilities.forms.mixins import FilterModifierMixin from utilities.forms.rendering import FieldSet from utilities.forms.widgets import DatePicker, NumberWithOptions from circuits.filtersets import * @@ -34,7 +33,7 @@ __all__ = ( @register_filterset(ProviderFilterSet) -class ProviderFilterForm(FilterModifierMixin, ContactModelFilterForm, PrimaryModelFilterSetForm): +class ProviderFilterForm(ContactModelFilterForm, PrimaryModelFilterSetForm): model = Provider fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -70,7 +69,7 @@ class ProviderFilterForm(FilterModifierMixin, ContactModelFilterForm, PrimaryMod @register_filterset(ProviderAccountFilterSet) -class ProviderAccountFilterForm(FilterModifierMixin, ContactModelFilterForm, PrimaryModelFilterSetForm): +class ProviderAccountFilterForm(ContactModelFilterForm, PrimaryModelFilterSetForm): model = ProviderAccount fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -90,7 +89,7 @@ class ProviderAccountFilterForm(FilterModifierMixin, ContactModelFilterForm, Pri @register_filterset(ProviderNetworkFilterSet) -class ProviderNetworkFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): +class ProviderNetworkFilterForm(PrimaryModelFilterSetForm): model = ProviderNetwork fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -110,7 +109,7 @@ class ProviderNetworkFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): @register_filterset(CircuitTypeFilterSet) -class CircuitTypeFilterForm(FilterModifierMixin, OrganizationalModelFilterSetForm): +class CircuitTypeFilterForm(OrganizationalModelFilterSetForm): model = CircuitType fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -125,7 +124,7 @@ class CircuitTypeFilterForm(FilterModifierMixin, OrganizationalModelFilterSetFor @register_filterset(CircuitFilterSet) -class CircuitFilterForm(FilterModifierMixin, TenancyFilterForm, ContactModelFilterForm, PrimaryModelFilterSetForm): +class CircuitFilterForm(TenancyFilterForm, ContactModelFilterForm, PrimaryModelFilterSetForm): model = Circuit fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -225,7 +224,7 @@ class CircuitFilterForm(FilterModifierMixin, TenancyFilterForm, ContactModelFilt @register_filterset(CircuitTerminationFilterSet) -class CircuitTerminationFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): +class CircuitTerminationFilterForm(NetBoxModelFilterSetForm): model = CircuitTermination fieldsets = ( FieldSet('q', 'filter_id', 'tag'), @@ -280,7 +279,7 @@ class CircuitTerminationFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm @register_filterset(CircuitGroupFilterSet) -class CircuitGroupFilterForm(FilterModifierMixin, TenancyFilterForm, OrganizationalModelFilterSetForm): +class CircuitGroupFilterForm(TenancyFilterForm, OrganizationalModelFilterSetForm): model = CircuitGroup fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -290,7 +289,7 @@ class CircuitGroupFilterForm(FilterModifierMixin, TenancyFilterForm, Organizatio @register_filterset(CircuitGroupAssignmentFilterSet) -class CircuitGroupAssignmentFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): +class CircuitGroupAssignmentFilterForm(NetBoxModelFilterSetForm): model = CircuitGroupAssignment fieldsets = ( FieldSet('q', 'filter_id', 'tag'), @@ -320,7 +319,7 @@ class CircuitGroupAssignmentFilterForm(FilterModifierMixin, NetBoxModelFilterSet @register_filterset(VirtualCircuitTypeFilterSet) -class VirtualCircuitTypeFilterForm(FilterModifierMixin, OrganizationalModelFilterSetForm): +class VirtualCircuitTypeFilterForm(OrganizationalModelFilterSetForm): model = VirtualCircuitType fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -336,7 +335,6 @@ class VirtualCircuitTypeFilterForm(FilterModifierMixin, OrganizationalModelFilte @register_filterset(VirtualCircuitFilterSet) class VirtualCircuitFilterForm( - FilterModifierMixin, TenancyFilterForm, ContactModelFilterForm, PrimaryModelFilterSetForm @@ -384,7 +382,7 @@ class VirtualCircuitFilterForm( @register_filterset(VirtualCircuitTerminationFilterSet) -class VirtualCircuitTerminationFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): +class VirtualCircuitTerminationFilterForm(NetBoxModelFilterSetForm): model = VirtualCircuitTermination fieldsets = ( FieldSet('q', 'filter_id', 'tag'), diff --git a/netbox/core/forms/filtersets.py b/netbox/core/forms/filtersets.py index d479064d7..7580884d9 100644 --- a/netbox/core/forms/filtersets.py +++ b/netbox/core/forms/filtersets.py @@ -11,7 +11,6 @@ from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, FilterForm, add_blank_ch from utilities.forms.fields import ( ContentTypeChoiceField, ContentTypeMultipleChoiceField, DynamicModelMultipleChoiceField, TagFilterField, ) -from utilities.forms.mixins import FilterModifierMixin from utilities.forms.rendering import FieldSet from utilities.forms.widgets import DateTimePicker from core.filtersets import * @@ -26,7 +25,7 @@ __all__ = ( @register_filterset(DataSourceFilterSet) -class DataSourceFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): +class DataSourceFilterForm(PrimaryModelFilterSetForm): model = DataSource fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -58,7 +57,7 @@ class DataSourceFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): @register_filterset(DataFileFilterSet) -class DataFileFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): +class DataFileFilterForm(NetBoxModelFilterSetForm): model = DataFile fieldsets = ( FieldSet('q', 'filter_id'), @@ -72,7 +71,7 @@ class DataFileFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): @register_filterset(JobFilterSet) -class JobFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm): +class JobFilterForm(SavedFiltersMixin, FilterForm): model = Job fieldsets = ( FieldSet('q', 'filter_id'), @@ -140,7 +139,7 @@ class JobFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm): @register_filterset(ObjectChangeFilterSet) -class ObjectChangeFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm): +class ObjectChangeFilterForm(SavedFiltersMixin, FilterForm): model = ObjectChange fieldsets = ( FieldSet('q', 'filter_id'), @@ -175,7 +174,7 @@ class ObjectChangeFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm) @register_filterset(ConfigRevisionFilterSet) -class ConfigRevisionFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm): +class ConfigRevisionFilterForm(SavedFiltersMixin, FilterForm): model = ConfigRevision fieldsets = ( FieldSet('q', 'filter_id'), diff --git a/netbox/dcim/forms/filtersets.py b/netbox/dcim/forms/filtersets.py index 2cc8e16e9..afa26b48d 100644 --- a/netbox/dcim/forms/filtersets.py +++ b/netbox/dcim/forms/filtersets.py @@ -17,7 +17,6 @@ from tenancy.forms import ContactModelFilterForm, TenancyFilterForm from users.models import Owner, User from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, FilterForm, add_blank_choice, register_filterset from utilities.forms.fields import ColorField, DynamicModelChoiceField, DynamicModelMultipleChoiceField, TagFilterField -from utilities.forms.mixins import FilterModifierMixin from utilities.forms.rendering import FieldSet from utilities.forms.widgets import NumberWithOptions from virtualization.models import Cluster, ClusterGroup, VirtualMachine @@ -150,7 +149,7 @@ class DeviceComponentFilterForm(NetBoxModelFilterSetForm): @register_filterset(RegionFilterSet) -class RegionFilterForm(FilterModifierMixin, ContactModelFilterForm, NestedGroupModelFilterSetForm): +class RegionFilterForm(ContactModelFilterForm, NestedGroupModelFilterSetForm): model = Region fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -166,7 +165,7 @@ class RegionFilterForm(FilterModifierMixin, ContactModelFilterForm, NestedGroupM @register_filterset(SiteGroupFilterSet) -class SiteGroupFilterForm(FilterModifierMixin, ContactModelFilterForm, NestedGroupModelFilterSetForm): +class SiteGroupFilterForm(ContactModelFilterForm, NestedGroupModelFilterSetForm): model = SiteGroup fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -182,7 +181,7 @@ class SiteGroupFilterForm(FilterModifierMixin, ContactModelFilterForm, NestedGro @register_filterset(SiteFilterSet) -class SiteFilterForm(FilterModifierMixin, TenancyFilterForm, ContactModelFilterForm, PrimaryModelFilterSetForm): +class SiteFilterForm(TenancyFilterForm, ContactModelFilterForm, PrimaryModelFilterSetForm): model = Site fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -215,7 +214,7 @@ class SiteFilterForm(FilterModifierMixin, TenancyFilterForm, ContactModelFilterF @register_filterset(LocationFilterSet) -class LocationFilterForm(FilterModifierMixin, TenancyFilterForm, ContactModelFilterForm, NestedGroupModelFilterSetForm): +class LocationFilterForm(TenancyFilterForm, ContactModelFilterForm, NestedGroupModelFilterSetForm): model = Location fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -264,7 +263,7 @@ class LocationFilterForm(FilterModifierMixin, TenancyFilterForm, ContactModelFil @register_filterset(RackRoleFilterSet) -class RackRoleFilterForm(FilterModifierMixin, OrganizationalModelFilterSetForm): +class RackRoleFilterForm(OrganizationalModelFilterSetForm): model = RackRole fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -316,7 +315,7 @@ class RackBaseFilterForm(PrimaryModelFilterSetForm): @register_filterset(RackTypeFilterSet) -class RackTypeFilterForm(FilterModifierMixin, RackBaseFilterForm): +class RackTypeFilterForm(RackBaseFilterForm): model = RackType fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -339,7 +338,7 @@ class RackTypeFilterForm(FilterModifierMixin, RackBaseFilterForm): @register_filterset(RackFilterSet) -class RackFilterForm(FilterModifierMixin, TenancyFilterForm, ContactModelFilterForm, RackBaseFilterForm): +class RackFilterForm(TenancyFilterForm, ContactModelFilterForm, RackBaseFilterForm): model = Rack fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -441,7 +440,7 @@ class RackElevationFilterForm(RackFilterForm): @register_filterset(RackReservationFilterSet) -class RackReservationFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSetForm): +class RackReservationFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm): model = RackReservation fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -500,7 +499,7 @@ class RackReservationFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryM @register_filterset(ManufacturerFilterSet) -class ManufacturerFilterForm(FilterModifierMixin, ContactModelFilterForm, OrganizationalModelFilterSetForm): +class ManufacturerFilterForm(ContactModelFilterForm, OrganizationalModelFilterSetForm): model = Manufacturer fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -510,7 +509,7 @@ class ManufacturerFilterForm(FilterModifierMixin, ContactModelFilterForm, Organi @register_filterset(DeviceTypeFilterSet) -class DeviceTypeFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): +class DeviceTypeFilterForm(PrimaryModelFilterSetForm): model = DeviceType fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -645,7 +644,7 @@ class DeviceTypeFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): @register_filterset(ModuleTypeProfileFilterSet) -class ModuleTypeProfileFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): +class ModuleTypeProfileFilterForm(PrimaryModelFilterSetForm): model = ModuleTypeProfile fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -655,7 +654,7 @@ class ModuleTypeProfileFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm @register_filterset(ModuleTypeFilterSet) -class ModuleTypeFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): +class ModuleTypeFilterForm(PrimaryModelFilterSetForm): model = ModuleType fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -749,7 +748,7 @@ class ModuleTypeFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): @register_filterset(DeviceRoleFilterSet) -class DeviceRoleFilterForm(FilterModifierMixin, NestedGroupModelFilterSetForm): +class DeviceRoleFilterForm(NestedGroupModelFilterSetForm): model = DeviceRole fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -769,7 +768,7 @@ class DeviceRoleFilterForm(FilterModifierMixin, NestedGroupModelFilterSetForm): @register_filterset(PlatformFilterSet) -class PlatformFilterForm(FilterModifierMixin, NestedGroupModelFilterSetForm): +class PlatformFilterForm(NestedGroupModelFilterSetForm): model = Platform fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -796,7 +795,6 @@ class PlatformFilterForm(FilterModifierMixin, NestedGroupModelFilterSetForm): @register_filterset(DeviceFilterSet) class DeviceFilterForm( - FilterModifierMixin, LocalConfigContextFilterForm, TenancyFilterForm, ContactModelFilterForm, @@ -995,7 +993,7 @@ class DeviceFilterForm( @register_filterset(VirtualDeviceContextFilterSet) -class VirtualDeviceContextFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSetForm): +class VirtualDeviceContextFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm): model = VirtualDeviceContext fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -1023,7 +1021,7 @@ class VirtualDeviceContextFilterForm(FilterModifierMixin, TenancyFilterForm, Pri @register_filterset(ModuleFilterSet) -class ModuleFilterForm(FilterModifierMixin, LocalConfigContextFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm): +class ModuleFilterForm(LocalConfigContextFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm): model = Module fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -1107,7 +1105,7 @@ class ModuleFilterForm(FilterModifierMixin, LocalConfigContextFilterForm, Tenanc @register_filterset(VirtualChassisFilterSet) -class VirtualChassisFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSetForm): +class VirtualChassisFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm): model = VirtualChassis fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -1137,7 +1135,7 @@ class VirtualChassisFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryMo @register_filterset(CableFilterSet) -class CableFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSetForm): +class CableFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm): model = Cable fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -1227,7 +1225,7 @@ class CableFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilter @register_filterset(PowerPanelFilterSet) -class PowerPanelFilterForm(FilterModifierMixin, ContactModelFilterForm, PrimaryModelFilterSetForm): +class PowerPanelFilterForm(ContactModelFilterForm, PrimaryModelFilterSetForm): model = PowerPanel fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -1267,7 +1265,7 @@ class PowerPanelFilterForm(FilterModifierMixin, ContactModelFilterForm, PrimaryM @register_filterset(PowerFeedFilterSet) -class PowerFeedFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSetForm): +class PowerFeedFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm): model = PowerFeed fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -1378,7 +1376,7 @@ class PathEndpointFilterForm(CabledFilterForm): @register_filterset(ConsolePortFilterSet) -class ConsolePortFilterForm(FilterModifierMixin, PathEndpointFilterForm, DeviceComponentFilterForm): +class ConsolePortFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm): model = ConsolePort fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -1403,7 +1401,7 @@ class ConsolePortFilterForm(FilterModifierMixin, PathEndpointFilterForm, DeviceC @register_filterset(ConsoleServerPortFilterSet) -class ConsoleServerPortFilterForm(FilterModifierMixin, PathEndpointFilterForm, DeviceComponentFilterForm): +class ConsoleServerPortFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm): model = ConsoleServerPort fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -1429,7 +1427,7 @@ class ConsoleServerPortFilterForm(FilterModifierMixin, PathEndpointFilterForm, D @register_filterset(PowerPortFilterSet) -class PowerPortFilterForm(FilterModifierMixin, PathEndpointFilterForm, DeviceComponentFilterForm): +class PowerPortFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm): model = PowerPort fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -1449,7 +1447,7 @@ class PowerPortFilterForm(FilterModifierMixin, PathEndpointFilterForm, DeviceCom @register_filterset(PowerOutletFilterSet) -class PowerOutletFilterForm(FilterModifierMixin, PathEndpointFilterForm, DeviceComponentFilterForm): +class PowerOutletFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm): model = PowerOutlet fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -1479,7 +1477,7 @@ class PowerOutletFilterForm(FilterModifierMixin, PathEndpointFilterForm, DeviceC @register_filterset(InterfaceFilterSet) -class InterfaceFilterForm(FilterModifierMixin, PathEndpointFilterForm, DeviceComponentFilterForm): +class InterfaceFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm): model = Interface fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -1606,7 +1604,7 @@ class InterfaceFilterForm(FilterModifierMixin, PathEndpointFilterForm, DeviceCom @register_filterset(FrontPortFilterSet) -class FrontPortFilterForm(FilterModifierMixin, CabledFilterForm, DeviceComponentFilterForm): +class FrontPortFilterForm(CabledFilterForm, DeviceComponentFilterForm): fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), FieldSet('name', 'label', 'type', 'color', name=_('Attributes')), @@ -1630,7 +1628,7 @@ class FrontPortFilterForm(FilterModifierMixin, CabledFilterForm, DeviceComponent @register_filterset(RearPortFilterSet) -class RearPortFilterForm(FilterModifierMixin, CabledFilterForm, DeviceComponentFilterForm): +class RearPortFilterForm(CabledFilterForm, DeviceComponentFilterForm): model = RearPort fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -1655,7 +1653,7 @@ class RearPortFilterForm(FilterModifierMixin, CabledFilterForm, DeviceComponentF @register_filterset(ModuleBayFilterSet) -class ModuleBayFilterForm(FilterModifierMixin, DeviceComponentFilterForm): +class ModuleBayFilterForm(DeviceComponentFilterForm): model = ModuleBay fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -1674,7 +1672,7 @@ class ModuleBayFilterForm(FilterModifierMixin, DeviceComponentFilterForm): @register_filterset(DeviceBayFilterSet) -class DeviceBayFilterForm(FilterModifierMixin, DeviceComponentFilterForm): +class DeviceBayFilterForm(DeviceComponentFilterForm): model = DeviceBay fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -1689,7 +1687,7 @@ class DeviceBayFilterForm(FilterModifierMixin, DeviceComponentFilterForm): @register_filterset(InventoryItemFilterSet) -class InventoryItemFilterForm(FilterModifierMixin, DeviceComponentFilterForm): +class InventoryItemFilterForm(DeviceComponentFilterForm): model = InventoryItem fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -1741,7 +1739,7 @@ class InventoryItemFilterForm(FilterModifierMixin, DeviceComponentFilterForm): # @register_filterset(InventoryItemRoleFilterSet) -class InventoryItemRoleFilterForm(FilterModifierMixin, OrganizationalModelFilterSetForm): +class InventoryItemRoleFilterForm(OrganizationalModelFilterSetForm): model = InventoryItemRole fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -1754,7 +1752,7 @@ class InventoryItemRoleFilterForm(FilterModifierMixin, OrganizationalModelFilter # @register_filterset(MACAddressFilterSet) -class MACAddressFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): +class MACAddressFilterForm(PrimaryModelFilterSetForm): model = MACAddress fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), diff --git a/netbox/extras/forms/filtersets.py b/netbox/extras/forms/filtersets.py index 772eb39be..8c7a2d0f6 100644 --- a/netbox/extras/forms/filtersets.py +++ b/netbox/extras/forms/filtersets.py @@ -15,7 +15,6 @@ from utilities.forms.fields import ( ContentTypeChoiceField, ContentTypeMultipleChoiceField, DynamicModelChoiceField, DynamicModelMultipleChoiceField, TagFilterField, ) -from utilities.forms.mixins import FilterModifierMixin from utilities.forms.rendering import FieldSet from utilities.forms.widgets import DateTimePicker from virtualization.models import Cluster, ClusterGroup, ClusterType @@ -42,7 +41,7 @@ __all__ = ( @register_filterset(CustomFieldFilterSet) -class CustomFieldFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm): +class CustomFieldFilterForm(SavedFiltersMixin, FilterForm): model = CustomField fieldsets = ( FieldSet('q', 'filter_id'), @@ -130,7 +129,7 @@ class CustomFieldFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm): @register_filterset(CustomFieldChoiceSetFilterSet) -class CustomFieldChoiceSetFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm): +class CustomFieldChoiceSetFilterForm(SavedFiltersMixin, FilterForm): model = CustomFieldChoiceSet fieldsets = ( FieldSet('q', 'filter_id'), @@ -151,7 +150,7 @@ class CustomFieldChoiceSetFilterForm(FilterModifierMixin, SavedFiltersMixin, Fil @register_filterset(CustomLinkFilterSet) -class CustomLinkFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm): +class CustomLinkFilterForm(SavedFiltersMixin, FilterForm): model = CustomLink fieldsets = ( FieldSet('q', 'filter_id'), @@ -188,7 +187,7 @@ class CustomLinkFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm): @register_filterset(ExportTemplateFilterSet) -class ExportTemplateFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm): +class ExportTemplateFilterForm(SavedFiltersMixin, FilterForm): model = ExportTemplate fieldsets = ( FieldSet('q', 'filter_id', 'object_type_id'), @@ -240,7 +239,7 @@ class ExportTemplateFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterFor @register_filterset(ImageAttachmentFilterSet) -class ImageAttachmentFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm): +class ImageAttachmentFilterForm(SavedFiltersMixin, FilterForm): model = ImageAttachment fieldsets = ( FieldSet('q', 'filter_id'), @@ -258,7 +257,7 @@ class ImageAttachmentFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterFo @register_filterset(SavedFilterFilterSet) -class SavedFilterFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm): +class SavedFilterFilterForm(SavedFiltersMixin, FilterForm): model = SavedFilter fieldsets = ( FieldSet('q', 'filter_id'), @@ -295,7 +294,7 @@ class SavedFilterFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm): @register_filterset(TableConfigFilterSet) -class TableConfigFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm): +class TableConfigFilterForm(SavedFiltersMixin, FilterForm): fieldsets = ( FieldSet('q', 'filter_id'), FieldSet('object_type_id', 'enabled', 'shared', 'weight', name=_('Attributes')), @@ -326,7 +325,7 @@ class TableConfigFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm): @register_filterset(WebhookFilterSet) -class WebhookFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): +class WebhookFilterForm(NetBoxModelFilterSetForm): model = Webhook fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -354,7 +353,7 @@ class WebhookFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): @register_filterset(EventRuleFilterSet) -class EventRuleFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): +class EventRuleFilterForm(NetBoxModelFilterSetForm): model = EventRule fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -391,7 +390,7 @@ class EventRuleFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): @register_filterset(TagFilterSet) -class TagFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm): +class TagFilterForm(SavedFiltersMixin, FilterForm): model = Tag content_type_id = ContentTypeMultipleChoiceField( queryset=ObjectType.objects.with_feature('tags'), @@ -411,7 +410,7 @@ class TagFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm): @register_filterset(ConfigContextProfileFilterSet) -class ConfigContextProfileFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): +class ConfigContextProfileFilterForm(PrimaryModelFilterSetForm): model = ConfigContextProfile fieldsets = ( FieldSet('q', 'filter_id'), @@ -433,7 +432,7 @@ class ConfigContextProfileFilterForm(FilterModifierMixin, PrimaryModelFilterSetF @register_filterset(ConfigContextFilterSet) -class ConfigContextFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm): +class ConfigContextFilterForm(SavedFiltersMixin, FilterForm): model = ConfigContext fieldsets = ( FieldSet('q', 'filter_id', 'tag_id'), @@ -535,7 +534,7 @@ class ConfigContextFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm @register_filterset(ConfigTemplateFilterSet) -class ConfigTemplateFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm): +class ConfigTemplateFilterForm(SavedFiltersMixin, FilterForm): model = ConfigTemplate fieldsets = ( FieldSet('q', 'filter_id', 'tag'), @@ -600,7 +599,7 @@ class LocalConfigContextFilterForm(forms.Form): @register_filterset(JournalEntryFilterSet) -class JournalEntryFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): +class JournalEntryFilterForm(NetBoxModelFilterSetForm): model = JournalEntry fieldsets = ( FieldSet('q', 'filter_id', 'tag'), @@ -636,7 +635,7 @@ class JournalEntryFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): @register_filterset(NotificationGroupFilterSet) -class NotificationGroupFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm): +class NotificationGroupFilterForm(SavedFiltersMixin, FilterForm): model = NotificationGroup user_id = DynamicModelMultipleChoiceField( queryset=User.objects.all(), diff --git a/netbox/ipam/forms/filtersets.py b/netbox/ipam/forms/filtersets.py index cbc2dc2b0..8471f8822 100644 --- a/netbox/ipam/forms/filtersets.py +++ b/netbox/ipam/forms/filtersets.py @@ -10,7 +10,6 @@ from netbox.forms import NetBoxModelFilterSetForm, OrganizationalModelFilterSetF from tenancy.forms import ContactModelFilterForm, TenancyFilterForm from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, add_blank_choice, register_filterset from utilities.forms.fields import DynamicModelChoiceField, DynamicModelMultipleChoiceField, TagFilterField -from utilities.forms.mixins import FilterModifierMixin from utilities.forms.rendering import FieldSet from virtualization.models import VirtualMachine, ClusterGroup, Cluster from vpn.models import L2VPN @@ -45,7 +44,7 @@ IPADDRESS_MASK_LENGTH_CHOICES = add_blank_choice([ @register_filterset(VRFFilterSet) -class VRFFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSetForm): +class VRFFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm): model = VRF fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -66,7 +65,7 @@ class VRFFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSe @register_filterset(RouteTargetFilterSet) -class RouteTargetFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSetForm): +class RouteTargetFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm): model = RouteTarget fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -87,7 +86,7 @@ class RouteTargetFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModel @register_filterset(RIRFilterSet) -class RIRFilterForm(FilterModifierMixin, OrganizationalModelFilterSetForm): +class RIRFilterForm(OrganizationalModelFilterSetForm): model = RIR fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -104,7 +103,7 @@ class RIRFilterForm(FilterModifierMixin, OrganizationalModelFilterSetForm): @register_filterset(AggregateFilterSet) -class AggregateFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm): +class AggregateFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm): model = Aggregate fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -126,7 +125,7 @@ class AggregateFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFi @register_filterset(ASNRangeFilterSet) -class ASNRangeFilterForm(FilterModifierMixin, TenancyFilterForm, OrganizationalModelFilterSetForm): +class ASNRangeFilterForm(TenancyFilterForm, OrganizationalModelFilterSetForm): model = ASNRange fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -150,7 +149,7 @@ class ASNRangeFilterForm(FilterModifierMixin, TenancyFilterForm, OrganizationalM @register_filterset(ASNFilterSet) -class ASNFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSetForm): +class ASNFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm): model = ASN fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -176,7 +175,7 @@ class ASNFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSe @register_filterset(RoleFilterSet) -class RoleFilterForm(FilterModifierMixin, OrganizationalModelFilterSetForm): +class RoleFilterForm(OrganizationalModelFilterSetForm): model = Role fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -185,7 +184,7 @@ class RoleFilterForm(FilterModifierMixin, OrganizationalModelFilterSetForm): @register_filterset(PrefixFilterSet) -class PrefixFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm): +class PrefixFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm): model = Prefix fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -292,7 +291,7 @@ class PrefixFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFilte @register_filterset(IPRangeFilterSet) -class IPRangeFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm): +class IPRangeFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm): model = IPRange fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -340,7 +339,7 @@ class IPRangeFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFilt @register_filterset(IPAddressFilterSet) -class IPAddressFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm): +class IPAddressFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm): model = IPAddress fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -419,7 +418,7 @@ class IPAddressFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFi @register_filterset(FHRPGroupFilterSet) -class FHRPGroupFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): +class FHRPGroupFilterForm(PrimaryModelFilterSetForm): model = FHRPGroup fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -453,7 +452,7 @@ class FHRPGroupFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): @register_filterset(VLANGroupFilterSet) -class VLANGroupFilterForm(FilterModifierMixin, TenancyFilterForm, OrganizationalModelFilterSetForm): +class VLANGroupFilterForm(TenancyFilterForm, OrganizationalModelFilterSetForm): fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), FieldSet('region', 'site_group', 'site', 'location', 'rack', name=_('Location')), @@ -507,7 +506,7 @@ class VLANGroupFilterForm(FilterModifierMixin, TenancyFilterForm, Organizational @register_filterset(VLANTranslationPolicyFilterSet) -class VLANTranslationPolicyFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): +class VLANTranslationPolicyFilterForm(PrimaryModelFilterSetForm): model = VLANTranslationPolicy fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -521,7 +520,7 @@ class VLANTranslationPolicyFilterForm(FilterModifierMixin, PrimaryModelFilterSet @register_filterset(VLANTranslationRuleFilterSet) -class VLANTranslationRuleFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): +class VLANTranslationRuleFilterForm(NetBoxModelFilterSetForm): model = VLANTranslationRule fieldsets = ( FieldSet('q', 'filter_id', 'tag'), @@ -546,7 +545,7 @@ class VLANTranslationRuleFilterForm(FilterModifierMixin, NetBoxModelFilterSetFor @register_filterset(VLANFilterSet) -class VLANFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSetForm): +class VLANFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm): model = VLAN fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -619,7 +618,7 @@ class VLANFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterS @register_filterset(ServiceTemplateFilterSet) -class ServiceTemplateFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): +class ServiceTemplateFilterForm(PrimaryModelFilterSetForm): model = ServiceTemplate fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), diff --git a/netbox/netbox/forms/filtersets.py b/netbox/netbox/forms/filtersets.py index d5967c24b..61cc7ba9d 100644 --- a/netbox/netbox/forms/filtersets.py +++ b/netbox/netbox/forms/filtersets.py @@ -5,6 +5,7 @@ from django.utils.translation import gettext_lazy as _ from extras.choices import * from users.models import Owner from utilities.forms.fields import DynamicModelChoiceField +from utilities.forms.mixins import FilterModifierMixin from .mixins import CustomFieldsMixin, SavedFiltersMixin __all__ = ( @@ -15,7 +16,7 @@ __all__ = ( ) -class NetBoxModelFilterSetForm(CustomFieldsMixin, SavedFiltersMixin, forms.Form): +class NetBoxModelFilterSetForm(FilterModifierMixin, CustomFieldsMixin, SavedFiltersMixin, forms.Form): """ Base form for FilerSet forms. These are used to filter object lists in the NetBox UI. Note that the corresponding FilterSet *must* provide a `q` filter. diff --git a/netbox/tenancy/forms/filtersets.py b/netbox/tenancy/forms/filtersets.py index 812e1282d..1fbd50109 100644 --- a/netbox/tenancy/forms/filtersets.py +++ b/netbox/tenancy/forms/filtersets.py @@ -14,7 +14,6 @@ from utilities.forms.fields import ( ContentTypeMultipleChoiceField, DynamicModelMultipleChoiceField, TagFilterField, ) from utilities.forms import register_filterset -from utilities.forms.mixins import FilterModifierMixin from utilities.forms.rendering import FieldSet __all__ = ( @@ -32,7 +31,7 @@ __all__ = ( # @register_filterset(TenantGroupFilterSet) -class TenantGroupFilterForm(FilterModifierMixin, NestedGroupModelFilterSetForm): +class TenantGroupFilterForm(NestedGroupModelFilterSetForm): model = TenantGroup fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -47,7 +46,7 @@ class TenantGroupFilterForm(FilterModifierMixin, NestedGroupModelFilterSetForm): @register_filterset(TenantFilterSet) -class TenantFilterForm(FilterModifierMixin, ContactModelFilterForm, PrimaryModelFilterSetForm): +class TenantFilterForm(ContactModelFilterForm, PrimaryModelFilterSetForm): model = Tenant fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -68,7 +67,7 @@ class TenantFilterForm(FilterModifierMixin, ContactModelFilterForm, PrimaryModel # @register_filterset(ContactGroupFilterSet) -class ContactGroupFilterForm(FilterModifierMixin, NestedGroupModelFilterSetForm): +class ContactGroupFilterForm(NestedGroupModelFilterSetForm): model = ContactGroup fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -83,7 +82,7 @@ class ContactGroupFilterForm(FilterModifierMixin, NestedGroupModelFilterSetForm) @register_filterset(ContactRoleFilterSet) -class ContactRoleFilterForm(FilterModifierMixin, OrganizationalModelFilterSetForm): +class ContactRoleFilterForm(OrganizationalModelFilterSetForm): model = ContactRole fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -92,7 +91,7 @@ class ContactRoleFilterForm(FilterModifierMixin, OrganizationalModelFilterSetFor @register_filterset(ContactFilterSet) -class ContactFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): +class ContactFilterForm(PrimaryModelFilterSetForm): model = Contact fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -108,7 +107,7 @@ class ContactFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): @register_filterset(ContactAssignmentFilterSet) -class ContactAssignmentFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): +class ContactAssignmentFilterForm(NetBoxModelFilterSetForm): model = ContactAssignment fieldsets = ( FieldSet('q', 'filter_id', 'tag'), diff --git a/netbox/users/forms/filtersets.py b/netbox/users/forms/filtersets.py index 42c3417f8..2e3e99ffc 100644 --- a/netbox/users/forms/filtersets.py +++ b/netbox/users/forms/filtersets.py @@ -7,7 +7,6 @@ from users.choices import TokenVersionChoices from users.models import Group, ObjectPermission, Owner, OwnerGroup, Token, User from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, FilterForm, register_filterset from utilities.forms.fields import DynamicModelMultipleChoiceField -from utilities.forms.mixins import FilterModifierMixin from utilities.forms.rendering import FieldSet from utilities.forms.utils import add_blank_choice from utilities.forms.widgets import DateTimePicker @@ -24,7 +23,7 @@ __all__ = ( @register_filterset(GroupFilterSet) -class GroupFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): +class GroupFilterForm(NetBoxModelFilterSetForm): model = Group fieldsets = ( FieldSet('q', 'filter_id',), @@ -32,7 +31,7 @@ class GroupFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): @register_filterset(UserFilterSet) -class UserFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): +class UserFilterForm(NetBoxModelFilterSetForm): model = User fieldsets = ( FieldSet('q', 'filter_id',), @@ -61,7 +60,7 @@ class UserFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): @register_filterset(ObjectPermissionFilterSet) -class ObjectPermissionFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): +class ObjectPermissionFilterForm(NetBoxModelFilterSetForm): model = ObjectPermission fieldsets = ( FieldSet('q', 'filter_id',), @@ -116,7 +115,7 @@ class ObjectPermissionFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): @register_filterset(TokenFilterSet) -class TokenFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm): +class TokenFilterForm(SavedFiltersMixin, FilterForm): model = Token fieldsets = ( FieldSet('q', 'filter_id',), @@ -158,7 +157,7 @@ class TokenFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm): @register_filterset(OwnerGroupFilterSet) -class OwnerGroupFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): +class OwnerGroupFilterForm(NetBoxModelFilterSetForm): model = OwnerGroup fieldsets = ( FieldSet('q', 'filter_id',), @@ -166,7 +165,7 @@ class OwnerGroupFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): @register_filterset(OwnerFilterSet) -class OwnerFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): +class OwnerFilterForm(NetBoxModelFilterSetForm): model = Owner fieldsets = ( FieldSet('q', 'filter_id',), diff --git a/netbox/utilities/forms/forms.py b/netbox/utilities/forms/forms.py index b7f86a94b..bee050719 100644 --- a/netbox/utilities/forms/forms.py +++ b/netbox/utilities/forms/forms.py @@ -4,7 +4,7 @@ from django import forms from django.utils.translation import gettext as _ from netbox.models.features import ChangeLoggingMixin -from utilities.forms.mixins import BackgroundJobMixin +from utilities.forms.mixins import BackgroundJobMixin, FilterModifierMixin __all__ = ( 'BulkDeleteForm', @@ -140,7 +140,7 @@ class CSVModelForm(forms.ModelForm): return super().clean() -class FilterForm(forms.Form): +class FilterForm(FilterModifierMixin, forms.Form): """ Base Form class for FilterSet forms. """ diff --git a/netbox/virtualization/forms/filtersets.py b/netbox/virtualization/forms/filtersets.py index eacf91305..38e4e7797 100644 --- a/netbox/virtualization/forms/filtersets.py +++ b/netbox/virtualization/forms/filtersets.py @@ -11,7 +11,6 @@ from tenancy.forms import ContactModelFilterForm, TenancyFilterForm from users.models import Owner from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, register_filterset from utilities.forms.fields import DynamicModelChoiceField, DynamicModelMultipleChoiceField, TagFilterField -from utilities.forms.mixins import FilterModifierMixin from utilities.forms.rendering import FieldSet from virtualization.choices import * from virtualization.filtersets import * @@ -29,7 +28,7 @@ __all__ = ( @register_filterset(ClusterTypeFilterSet) -class ClusterTypeFilterForm(FilterModifierMixin, OrganizationalModelFilterSetForm): +class ClusterTypeFilterForm(OrganizationalModelFilterSetForm): model = ClusterType fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -38,7 +37,7 @@ class ClusterTypeFilterForm(FilterModifierMixin, OrganizationalModelFilterSetFor @register_filterset(ClusterGroupFilterSet) -class ClusterGroupFilterForm(FilterModifierMixin, ContactModelFilterForm, OrganizationalModelFilterSetForm): +class ClusterGroupFilterForm(ContactModelFilterForm, OrganizationalModelFilterSetForm): model = ClusterGroup tag = TagFilterField(model) fieldsets = ( @@ -48,7 +47,7 @@ class ClusterGroupFilterForm(FilterModifierMixin, ContactModelFilterForm, Organi @register_filterset(ClusterFilterSet) -class ClusterFilterForm(FilterModifierMixin, TenancyFilterForm, ContactModelFilterForm, PrimaryModelFilterSetForm): +class ClusterFilterForm(TenancyFilterForm, ContactModelFilterForm, PrimaryModelFilterSetForm): model = Cluster fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -104,7 +103,6 @@ class ClusterFilterForm(FilterModifierMixin, TenancyFilterForm, ContactModelFilt @register_filterset(VirtualMachineFilterSet) class VirtualMachineFilterForm( - FilterModifierMixin, LocalConfigContextFilterForm, TenancyFilterForm, ContactModelFilterForm, @@ -213,7 +211,7 @@ class VirtualMachineFilterForm( @register_filterset(VMInterfaceFilterSet) -class VMInterfaceFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): +class VMInterfaceFilterForm(NetBoxModelFilterSetForm): model = VMInterface fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -276,7 +274,7 @@ class VMInterfaceFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): @register_filterset(VirtualDiskFilterSet) -class VirtualDiskFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): +class VirtualDiskFilterForm(NetBoxModelFilterSetForm): model = VirtualDisk fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), diff --git a/netbox/vpn/forms/filtersets.py b/netbox/vpn/forms/filtersets.py index 92998c60a..0c90e0c06 100644 --- a/netbox/vpn/forms/filtersets.py +++ b/netbox/vpn/forms/filtersets.py @@ -10,7 +10,6 @@ from utilities.forms.fields import ( ContentTypeMultipleChoiceField, DynamicModelChoiceField, DynamicModelMultipleChoiceField, TagFilterField, ) from utilities.forms import register_filterset -from utilities.forms.mixins import FilterModifierMixin from utilities.forms.rendering import FieldSet from utilities.forms.utils import add_blank_choice from virtualization.models import VirtualMachine @@ -34,7 +33,7 @@ __all__ = ( @register_filterset(TunnelGroupFilterSet) -class TunnelGroupFilterForm(FilterModifierMixin, ContactModelFilterForm, OrganizationalModelFilterSetForm): +class TunnelGroupFilterForm(ContactModelFilterForm, OrganizationalModelFilterSetForm): model = TunnelGroup fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -44,7 +43,7 @@ class TunnelGroupFilterForm(FilterModifierMixin, ContactModelFilterForm, Organiz @register_filterset(TunnelFilterSet) -class TunnelFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm): +class TunnelFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm): model = Tunnel fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -81,7 +80,7 @@ class TunnelFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFilte @register_filterset(TunnelTerminationFilterSet) -class TunnelTerminationFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): +class TunnelTerminationFilterForm(NetBoxModelFilterSetForm): model = TunnelTermination fieldsets = ( FieldSet('q', 'filter_id', 'tag'), @@ -101,7 +100,7 @@ class TunnelTerminationFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm) @register_filterset(IKEProposalFilterSet) -class IKEProposalFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): +class IKEProposalFilterForm(PrimaryModelFilterSetForm): model = IKEProposal fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -133,7 +132,7 @@ class IKEProposalFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): @register_filterset(IKEPolicyFilterSet) -class IKEPolicyFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): +class IKEPolicyFilterForm(PrimaryModelFilterSetForm): model = IKEPolicy fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -158,7 +157,7 @@ class IKEPolicyFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): @register_filterset(IPSecProposalFilterSet) -class IPSecProposalFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): +class IPSecProposalFilterForm(PrimaryModelFilterSetForm): model = IPSecProposal fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -178,7 +177,7 @@ class IPSecProposalFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): @register_filterset(IPSecPolicyFilterSet) -class IPSecPolicyFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): +class IPSecPolicyFilterForm(PrimaryModelFilterSetForm): model = IPSecPolicy fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -198,7 +197,7 @@ class IPSecPolicyFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): @register_filterset(IPSecProfileFilterSet) -class IPSecProfileFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): +class IPSecProfileFilterForm(PrimaryModelFilterSetForm): model = IPSecProfile fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -223,7 +222,7 @@ class IPSecProfileFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm): @register_filterset(L2VPNFilterSet) -class L2VPNFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm): +class L2VPNFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm): model = L2VPN fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -255,7 +254,7 @@ class L2VPNFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFilter @register_filterset(L2VPNTerminationFilterSet) -class L2VPNTerminationFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm): +class L2VPNTerminationFilterForm(NetBoxModelFilterSetForm): model = L2VPNTermination fieldsets = ( FieldSet('filter_id', 'tag', 'l2vpn_id'), diff --git a/netbox/wireless/forms/filtersets.py b/netbox/wireless/forms/filtersets.py index d38696941..c5fb2e8f1 100644 --- a/netbox/wireless/forms/filtersets.py +++ b/netbox/wireless/forms/filtersets.py @@ -8,7 +8,6 @@ from netbox.forms import NestedGroupModelFilterSetForm, PrimaryModelFilterSetFor from tenancy.forms import TenancyFilterForm from utilities.forms import add_blank_choice, register_filterset from utilities.forms.fields import DynamicModelMultipleChoiceField, TagFilterField -from utilities.forms.mixins import FilterModifierMixin from utilities.forms.rendering import FieldSet from wireless.choices import * from wireless.filtersets import * @@ -22,7 +21,7 @@ __all__ = ( @register_filterset(WirelessLANGroupFilterSet) -class WirelessLANGroupFilterForm(FilterModifierMixin, NestedGroupModelFilterSetForm): +class WirelessLANGroupFilterForm(NestedGroupModelFilterSetForm): model = WirelessLANGroup fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -37,7 +36,7 @@ class WirelessLANGroupFilterForm(FilterModifierMixin, NestedGroupModelFilterSetF @register_filterset(WirelessLANFilterSet) -class WirelessLANFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSetForm): +class WirelessLANFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm): model = WirelessLAN fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'), @@ -104,7 +103,7 @@ class WirelessLANFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModel @register_filterset(WirelessLinkFilterSet) -class WirelessLinkFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSetForm): +class WirelessLinkFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm): model = WirelessLink fieldsets = ( FieldSet('q', 'filter_id', 'tag', 'owner_id'),