diff --git a/netbox/ipam/api/views.py b/netbox/ipam/api/views.py index e966bc3d1..666a599a5 100644 --- a/netbox/ipam/api/views.py +++ b/netbox/ipam/api/views.py @@ -38,7 +38,7 @@ class VRFViewSet(CustomFieldModelViewSet): prefix_count=get_subquery(Prefix, 'vrf') ) serializer_class = serializers.VRFSerializer - filterset_class = filters.VRFFilter + filterset_class = filters.VRFFilterSet # @@ -50,7 +50,7 @@ class RIRViewSet(ModelViewSet): aggregate_count=Count('aggregates') ) serializer_class = serializers.RIRSerializer - filterset_class = filters.RIRFilter + filterset_class = filters.RIRFilterSet # @@ -60,7 +60,7 @@ class RIRViewSet(ModelViewSet): class AggregateViewSet(CustomFieldModelViewSet): queryset = Aggregate.objects.prefetch_related('rir').prefetch_related('tags') serializer_class = serializers.AggregateSerializer - filterset_class = filters.AggregateFilter + filterset_class = filters.AggregateFilterSet # @@ -73,7 +73,7 @@ class RoleViewSet(ModelViewSet): vlan_count=get_subquery(VLAN, 'role') ) serializer_class = serializers.RoleSerializer - filterset_class = filters.RoleFilter + filterset_class = filters.RoleFilterSet # @@ -83,7 +83,7 @@ class RoleViewSet(ModelViewSet): class PrefixViewSet(CustomFieldModelViewSet): queryset = Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role', 'tags') serializer_class = serializers.PrefixSerializer - filterset_class = filters.PrefixFilter + filterset_class = filters.PrefixFilterSet @action(detail=True, url_path='available-prefixes', methods=['get', 'post']) def available_prefixes(self, request, pk=None): @@ -264,7 +264,7 @@ class IPAddressViewSet(CustomFieldModelViewSet): 'nat_outside', 'tags', ) serializer_class = serializers.IPAddressSerializer - filterset_class = filters.IPAddressFilter + filterset_class = filters.IPAddressFilterSet # @@ -276,7 +276,7 @@ class VLANGroupViewSet(ModelViewSet): vlan_count=Count('vlans') ) serializer_class = serializers.VLANGroupSerializer - filterset_class = filters.VLANGroupFilter + filterset_class = filters.VLANGroupFilterSet # @@ -290,7 +290,7 @@ class VLANViewSet(CustomFieldModelViewSet): prefix_count=get_subquery(Prefix, 'role') ) serializer_class = serializers.VLANSerializer - filterset_class = filters.VLANFilter + filterset_class = filters.VLANFilterSet # @@ -300,4 +300,4 @@ class VLANViewSet(CustomFieldModelViewSet): class ServiceViewSet(ModelViewSet): queryset = Service.objects.prefetch_related('device').prefetch_related('tags') serializer_class = serializers.ServiceSerializer - filterset_class = filters.ServiceFilter + filterset_class = filters.ServiceFilterSet diff --git a/netbox/ipam/filters.py b/netbox/ipam/filters.py index dd0f568a8..fff179946 100644 --- a/netbox/ipam/filters.py +++ b/netbox/ipam/filters.py @@ -14,19 +14,19 @@ from .models import Aggregate, IPAddress, Prefix, RIR, Role, Service, VLAN, VLAN __all__ = ( - 'AggregateFilter', - 'IPAddressFilter', - 'PrefixFilter', - 'RIRFilter', - 'RoleFilter', - 'ServiceFilter', - 'VLANFilter', - 'VLANGroupFilter', - 'VRFFilter', + 'AggregateFilterSet', + 'IPAddressFilterSet', + 'PrefixFilterSet', + 'RIRFilterSet', + 'RoleFilterSet', + 'ServiceFilterSet', + 'VLANFilterSet', + 'VLANGroupFilterSet', + 'VRFFilterSet', ) -class VRFFilter(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet): +class VRFFilterSet(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet): id__in = NumericInFilter( field_name='id', lookup_expr='in' @@ -51,7 +51,7 @@ class VRFFilter(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet) fields = ['name', 'rd', 'enforce_unique'] -class RIRFilter(NameSlugSearchFilterSet): +class RIRFilterSet(NameSlugSearchFilterSet): id__in = NumericInFilter( field_name='id', lookup_expr='in' @@ -62,7 +62,7 @@ class RIRFilter(NameSlugSearchFilterSet): fields = ['name', 'slug', 'is_private'] -class AggregateFilter(CustomFieldFilterSet, CreatedUpdatedFilterSet): +class AggregateFilterSet(CustomFieldFilterSet, CreatedUpdatedFilterSet): id__in = NumericInFilter( field_name='id', lookup_expr='in' @@ -112,7 +112,7 @@ class AggregateFilter(CustomFieldFilterSet, CreatedUpdatedFilterSet): return queryset.none() -class RoleFilter(NameSlugSearchFilterSet): +class RoleFilterSet(NameSlugSearchFilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -123,7 +123,7 @@ class RoleFilter(NameSlugSearchFilterSet): fields = ['id', 'name', 'slug'] -class PrefixFilter(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet): +class PrefixFilterSet(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet): id__in = NumericInFilter( field_name='id', lookup_expr='in' @@ -271,7 +271,7 @@ class PrefixFilter(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterS return queryset.filter(prefix__net_mask_length=value) -class IPAddressFilter(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet): +class IPAddressFilterSet(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet): id__in = NumericInFilter( field_name='id', lookup_expr='in' @@ -398,7 +398,7 @@ class IPAddressFilter(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilt return queryset.exclude(interface__isnull=value) -class VLANGroupFilter(NameSlugSearchFilterSet): +class VLANGroupFilterSet(NameSlugSearchFilterSet): region_id = TreeNodeMultipleChoiceFilter( queryset=Region.objects.all(), field_name='site__region__in', @@ -426,7 +426,7 @@ class VLANGroupFilter(NameSlugSearchFilterSet): fields = ['id', 'name', 'slug'] -class VLANFilter(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet): +class VLANFilterSet(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet): id__in = NumericInFilter( field_name='id', lookup_expr='in' @@ -497,7 +497,7 @@ class VLANFilter(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet return queryset.filter(qs_filter) -class ServiceFilter(CreatedUpdatedFilterSet): +class ServiceFilterSet(CreatedUpdatedFilterSet): q = django_filters.CharFilter( method='search', label='Search', diff --git a/netbox/ipam/tests/test_filters.py b/netbox/ipam/tests/test_filters.py index a5b45ed1b..ccc024083 100644 --- a/netbox/ipam/tests/test_filters.py +++ b/netbox/ipam/tests/test_filters.py @@ -9,7 +9,7 @@ from virtualization.models import Cluster, ClusterType, VirtualMachine class VRFTestCase(TestCase): queryset = VRF.objects.all() - filterset = VRFFilter + filterset = VRFFilterSet @classmethod def setUpTestData(cls): @@ -46,7 +46,7 @@ class VRFTestCase(TestCase): class RIRTestCase(TestCase): queryset = RIR.objects.all() - filterset = RIRFilter + filterset = RIRFilterSet @classmethod def setUpTestData(cls): @@ -83,7 +83,7 @@ class RIRTestCase(TestCase): class AggregateTestCase(TestCase): queryset = Aggregate.objects.all() - filterset = AggregateFilter + filterset = AggregateFilterSet @classmethod def setUpTestData(cls): @@ -128,7 +128,7 @@ class AggregateTestCase(TestCase): class RoleTestCase(TestCase): queryset = Role.objects.all() - filterset = RoleFilter + filterset = RoleFilterSet @classmethod def setUpTestData(cls): @@ -156,7 +156,7 @@ class RoleTestCase(TestCase): class PrefixTestCase(TestCase): queryset = Prefix.objects.all() - filterset = PrefixFilter + filterset = PrefixFilterSet @classmethod def setUpTestData(cls): @@ -288,7 +288,7 @@ class PrefixTestCase(TestCase): class IPAddressTestCase(TestCase): queryset = IPAddress.objects.all() - filterset = IPAddressFilter + filterset = IPAddressFilterSet @classmethod def setUpTestData(cls): @@ -424,7 +424,7 @@ class IPAddressTestCase(TestCase): class VLANGroupTestCase(TestCase): queryset = VLANGroup.objects.all() - filterset = VLANGroupFilter + filterset = VLANGroupFilterSet @classmethod def setUpTestData(cls): @@ -483,7 +483,7 @@ class VLANGroupTestCase(TestCase): class VLANTestCase(TestCase): queryset = VLAN.objects.all() - filterset = VLANFilter + filterset = VLANFilterSet @classmethod def setUpTestData(cls): @@ -576,7 +576,7 @@ class VLANTestCase(TestCase): class ServiceTestCase(TestCase): queryset = Service.objects.all() - filterset = ServiceFilter + filterset = ServiceFilterSet @classmethod def setUpTestData(cls): diff --git a/netbox/ipam/views.py b/netbox/ipam/views.py index f9792fd05..0bd5026cf 100644 --- a/netbox/ipam/views.py +++ b/netbox/ipam/views.py @@ -117,7 +117,7 @@ def add_available_vlans(vlan_group, vlans): class VRFListView(PermissionRequiredMixin, ObjectListView): permission_required = 'ipam.view_vrf' queryset = VRF.objects.prefetch_related('tenant') - filter = filters.VRFFilter + filter = filters.VRFFilterSet filter_form = forms.VRFFilterForm table = tables.VRFTable template_name = 'ipam/vrf_list.html' @@ -165,7 +165,7 @@ class VRFBulkImportView(PermissionRequiredMixin, BulkImportView): class VRFBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'ipam.change_vrf' queryset = VRF.objects.prefetch_related('tenant') - filter = filters.VRFFilter + filter = filters.VRFFilterSet table = tables.VRFTable form = forms.VRFBulkEditForm default_return_url = 'ipam:vrf_list' @@ -174,7 +174,7 @@ class VRFBulkEditView(PermissionRequiredMixin, BulkEditView): class VRFBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'ipam.delete_vrf' queryset = VRF.objects.prefetch_related('tenant') - filter = filters.VRFFilter + filter = filters.VRFFilterSet table = tables.VRFTable default_return_url = 'ipam:vrf_list' @@ -186,7 +186,7 @@ class VRFBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class RIRListView(PermissionRequiredMixin, ObjectListView): permission_required = 'ipam.view_rir' queryset = RIR.objects.annotate(aggregate_count=Count('aggregates')) - filter = filters.RIRFilter + filter = filters.RIRFilterSet filter_form = forms.RIRFilterForm table = tables.RIRDetailTable template_name = 'ipam/rir_list.html' @@ -281,7 +281,7 @@ class RIRBulkImportView(PermissionRequiredMixin, BulkImportView): class RIRBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'ipam.delete_rir' queryset = RIR.objects.annotate(aggregate_count=Count('aggregates')) - filter = filters.RIRFilter + filter = filters.RIRFilterSet table = tables.RIRTable default_return_url = 'ipam:rir_list' @@ -296,7 +296,7 @@ class AggregateListView(PermissionRequiredMixin, ObjectListView): child_count=RawSQL('SELECT COUNT(*) FROM ipam_prefix WHERE ipam_prefix.prefix <<= ipam_aggregate.prefix', ()) ) - filter = filters.AggregateFilter + filter = filters.AggregateFilterSet filter_form = forms.AggregateFilterForm table = tables.AggregateDetailTable template_name = 'ipam/aggregate_list.html' @@ -391,7 +391,7 @@ class AggregateBulkImportView(PermissionRequiredMixin, BulkImportView): class AggregateBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'ipam.change_aggregate' queryset = Aggregate.objects.prefetch_related('rir') - filter = filters.AggregateFilter + filter = filters.AggregateFilterSet table = tables.AggregateTable form = forms.AggregateBulkEditForm default_return_url = 'ipam:aggregate_list' @@ -400,7 +400,7 @@ class AggregateBulkEditView(PermissionRequiredMixin, BulkEditView): class AggregateBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'ipam.delete_aggregate' queryset = Aggregate.objects.prefetch_related('rir') - filter = filters.AggregateFilter + filter = filters.AggregateFilterSet table = tables.AggregateTable default_return_url = 'ipam:aggregate_list' @@ -448,7 +448,7 @@ class RoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class PrefixListView(PermissionRequiredMixin, ObjectListView): permission_required = 'ipam.view_prefix' queryset = Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role') - filter = filters.PrefixFilter + filter = filters.PrefixFilterSet filter_form = forms.PrefixFilterForm table = tables.PrefixDetailTable template_name = 'ipam/prefix_list.html' @@ -620,7 +620,7 @@ class PrefixBulkImportView(PermissionRequiredMixin, BulkImportView): class PrefixBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'ipam.change_prefix' queryset = Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role') - filter = filters.PrefixFilter + filter = filters.PrefixFilterSet table = tables.PrefixTable form = forms.PrefixBulkEditForm default_return_url = 'ipam:prefix_list' @@ -629,7 +629,7 @@ class PrefixBulkEditView(PermissionRequiredMixin, BulkEditView): class PrefixBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'ipam.delete_prefix' queryset = Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role') - filter = filters.PrefixFilter + filter = filters.PrefixFilterSet table = tables.PrefixTable default_return_url = 'ipam:prefix_list' @@ -643,7 +643,7 @@ class IPAddressListView(PermissionRequiredMixin, ObjectListView): queryset = IPAddress.objects.prefetch_related( 'vrf__tenant', 'tenant', 'nat_inside', 'interface__device', 'interface__virtual_machine' ) - filter = filters.IPAddressFilter + filter = filters.IPAddressFilterSet filter_form = forms.IPAddressFilterForm table = tables.IPAddressDetailTable template_name = 'ipam/ipaddress_list.html' @@ -796,7 +796,7 @@ class IPAddressBulkImportView(PermissionRequiredMixin, BulkImportView): class IPAddressBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'ipam.change_ipaddress' queryset = IPAddress.objects.prefetch_related('vrf__tenant', 'tenant').prefetch_related('interface__device') - filter = filters.IPAddressFilter + filter = filters.IPAddressFilterSet table = tables.IPAddressTable form = forms.IPAddressBulkEditForm default_return_url = 'ipam:ipaddress_list' @@ -805,7 +805,7 @@ class IPAddressBulkEditView(PermissionRequiredMixin, BulkEditView): class IPAddressBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'ipam.delete_ipaddress' queryset = IPAddress.objects.prefetch_related('vrf__tenant', 'tenant').prefetch_related('interface__device') - filter = filters.IPAddressFilter + filter = filters.IPAddressFilterSet table = tables.IPAddressTable default_return_url = 'ipam:ipaddress_list' @@ -817,7 +817,7 @@ class IPAddressBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class VLANGroupListView(PermissionRequiredMixin, ObjectListView): permission_required = 'ipam.view_vlangroup' queryset = VLANGroup.objects.prefetch_related('site').annotate(vlan_count=Count('vlans')) - filter = filters.VLANGroupFilter + filter = filters.VLANGroupFilterSet filter_form = forms.VLANGroupFilterForm table = tables.VLANGroupTable template_name = 'ipam/vlangroup_list.html' @@ -844,7 +844,7 @@ class VLANGroupBulkImportView(PermissionRequiredMixin, BulkImportView): class VLANGroupBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'ipam.delete_vlangroup' queryset = VLANGroup.objects.prefetch_related('site').annotate(vlan_count=Count('vlans')) - filter = filters.VLANGroupFilter + filter = filters.VLANGroupFilterSet table = tables.VLANGroupTable default_return_url = 'ipam:vlangroup_list' @@ -893,7 +893,7 @@ class VLANGroupVLANsView(PermissionRequiredMixin, View): class VLANListView(PermissionRequiredMixin, ObjectListView): permission_required = 'ipam.view_vlan' queryset = VLAN.objects.prefetch_related('site', 'group', 'tenant', 'role').prefetch_related('prefixes') - filter = filters.VLANFilter + filter = filters.VLANFilterSet filter_form = forms.VLANFilterForm table = tables.VLANDetailTable template_name = 'ipam/vlan_list.html' @@ -968,7 +968,7 @@ class VLANBulkImportView(PermissionRequiredMixin, BulkImportView): class VLANBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'ipam.change_vlan' queryset = VLAN.objects.prefetch_related('site', 'group', 'tenant', 'role') - filter = filters.VLANFilter + filter = filters.VLANFilterSet table = tables.VLANTable form = forms.VLANBulkEditForm default_return_url = 'ipam:vlan_list' @@ -977,7 +977,7 @@ class VLANBulkEditView(PermissionRequiredMixin, BulkEditView): class VLANBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'ipam.delete_vlan' queryset = VLAN.objects.prefetch_related('site', 'group', 'tenant', 'role') - filter = filters.VLANFilter + filter = filters.VLANFilterSet table = tables.VLANTable default_return_url = 'ipam:vlan_list' @@ -989,7 +989,7 @@ class VLANBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class ServiceListView(PermissionRequiredMixin, ObjectListView): permission_required = 'ipam.view_service' queryset = Service.objects.prefetch_related('device', 'virtual_machine') - filter = filters.ServiceFilter + filter = filters.ServiceFilterSet filter_form = forms.ServiceFilterForm table = tables.ServiceTable template_name = 'ipam/service_list.html' @@ -1036,7 +1036,7 @@ class ServiceDeleteView(PermissionRequiredMixin, ObjectDeleteView): class ServiceBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'ipam.change_service' queryset = Service.objects.prefetch_related('device', 'virtual_machine') - filter = filters.ServiceFilter + filter = filters.ServiceFilterSet table = tables.ServiceTable form = forms.ServiceBulkEditForm default_return_url = 'ipam:service_list' @@ -1045,6 +1045,6 @@ class ServiceBulkEditView(PermissionRequiredMixin, BulkEditView): class ServiceBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'ipam.delete_service' queryset = Service.objects.prefetch_related('device', 'virtual_machine') - filter = filters.ServiceFilter + filter = filters.ServiceFilterSet table = tables.ServiceTable default_return_url = 'ipam:service_list' diff --git a/netbox/netbox/views.py b/netbox/netbox/views.py index 904f5bd6a..a27569950 100644 --- a/netbox/netbox/views.py +++ b/netbox/netbox/views.py @@ -22,7 +22,7 @@ from dcim.tables import ( VirtualChassisTable, ) from extras.models import ObjectChange, ReportResult -from ipam.filters import AggregateFilter, IPAddressFilter, PrefixFilter, VLANFilter, VRFFilter +from ipam.filters import AggregateFilterSet, IPAddressFilterSet, PrefixFilterSet, VLANFilterSet, VRFFilterSet from ipam.models import Aggregate, IPAddress, Prefix, VLAN, VRF from ipam.tables import AggregateTable, IPAddressTable, PrefixTable, VLANTable, VRFTable from secrets.filters import SecretFilter @@ -143,35 +143,35 @@ SEARCH_TYPES = OrderedDict(( ('vrf', { 'permission': 'ipam.view_vrf', 'queryset': VRF.objects.prefetch_related('tenant'), - 'filter': VRFFilter, + 'filter': VRFFilterSet, 'table': VRFTable, 'url': 'ipam:vrf_list', }), ('aggregate', { 'permission': 'ipam.view_aggregate', 'queryset': Aggregate.objects.prefetch_related('rir'), - 'filter': AggregateFilter, + 'filter': AggregateFilterSet, 'table': AggregateTable, 'url': 'ipam:aggregate_list', }), ('prefix', { 'permission': 'ipam.view_prefix', 'queryset': Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role'), - 'filter': PrefixFilter, + 'filter': PrefixFilterSet, 'table': PrefixTable, 'url': 'ipam:prefix_list', }), ('ipaddress', { 'permission': 'ipam.view_ipaddress', 'queryset': IPAddress.objects.prefetch_related('vrf__tenant', 'tenant'), - 'filter': IPAddressFilter, + 'filter': IPAddressFilterSet, 'table': IPAddressTable, 'url': 'ipam:ipaddress_list', }), ('vlan', { 'permission': 'ipam.view_vlan', 'queryset': VLAN.objects.prefetch_related('site', 'group', 'tenant', 'role'), - 'filter': VLANFilter, + 'filter': VLANFilterSet, 'table': VLANTable, 'url': 'ipam:vlan_list', }),