From 847cf9d0387d049015f688865d6c83cc46153888 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 9 Jan 2020 20:25:33 -0500 Subject: [PATCH 01/10] Renamed circuits FilterSets --- netbox/circuits/api/views.py | 8 ++++---- netbox/circuits/filters.py | 16 ++++++++-------- netbox/circuits/tests/test_filters.py | 8 ++++---- netbox/circuits/views.py | 12 ++++++------ netbox/netbox/views.py | 6 +++--- 5 files changed, 25 insertions(+), 25 deletions(-) diff --git a/netbox/circuits/api/views.py b/netbox/circuits/api/views.py index 5008fd19b..771a8efcc 100644 --- a/netbox/circuits/api/views.py +++ b/netbox/circuits/api/views.py @@ -32,7 +32,7 @@ class ProviderViewSet(CustomFieldModelViewSet): circuit_count=Count('circuits') ) serializer_class = serializers.ProviderSerializer - filterset_class = filters.ProviderFilter + filterset_class = filters.ProviderFilterSet @action(detail=True) def graphs(self, request, pk): @@ -54,7 +54,7 @@ class CircuitTypeViewSet(ModelViewSet): circuit_count=Count('circuits') ) serializer_class = serializers.CircuitTypeSerializer - filterset_class = filters.CircuitTypeFilter + filterset_class = filters.CircuitTypeFilterSet # @@ -64,7 +64,7 @@ class CircuitTypeViewSet(ModelViewSet): class CircuitViewSet(CustomFieldModelViewSet): queryset = Circuit.objects.prefetch_related('type', 'tenant', 'provider').prefetch_related('tags') serializer_class = serializers.CircuitSerializer - filterset_class = filters.CircuitFilter + filterset_class = filters.CircuitFilterSet # @@ -76,4 +76,4 @@ class CircuitTerminationViewSet(ModelViewSet): 'circuit', 'site', 'connected_endpoint__device', 'cable' ) serializer_class = serializers.CircuitTerminationSerializer - filterset_class = filters.CircuitTerminationFilter + filterset_class = filters.CircuitTerminationFilterSet diff --git a/netbox/circuits/filters.py b/netbox/circuits/filters.py index cb439082d..9a63a7814 100644 --- a/netbox/circuits/filters.py +++ b/netbox/circuits/filters.py @@ -9,14 +9,14 @@ from .choices import * from .models import Circuit, CircuitTermination, CircuitType, Provider __all__ = ( - 'CircuitFilter', - 'CircuitTerminationFilter', - 'CircuitTypeFilter', - 'ProviderFilter', + 'CircuitFilterSet', + 'CircuitTerminationFilterSet', + 'CircuitTypeFilterSet', + 'ProviderFilterSet', ) -class ProviderFilter(CustomFieldFilterSet, CreatedUpdatedFilterSet): +class ProviderFilterSet(CustomFieldFilterSet, CreatedUpdatedFilterSet): id__in = NumericInFilter( field_name='id', lookup_expr='in' @@ -65,14 +65,14 @@ class ProviderFilter(CustomFieldFilterSet, CreatedUpdatedFilterSet): ) -class CircuitTypeFilter(NameSlugSearchFilterSet): +class CircuitTypeFilterSet(NameSlugSearchFilterSet): class Meta: model = CircuitType fields = ['id', 'name', 'slug'] -class CircuitFilter(CustomFieldFilterSet, TenancyFilterSet, CreatedUpdatedFilterSet): +class CircuitFilterSet(CustomFieldFilterSet, TenancyFilterSet, CreatedUpdatedFilterSet): id__in = NumericInFilter( field_name='id', lookup_expr='in' @@ -146,7 +146,7 @@ class CircuitFilter(CustomFieldFilterSet, TenancyFilterSet, CreatedUpdatedFilter ).distinct() -class CircuitTerminationFilter(django_filters.FilterSet): +class CircuitTerminationFilterSet(django_filters.FilterSet): q = django_filters.CharFilter( method='search', label='Search', diff --git a/netbox/circuits/tests/test_filters.py b/netbox/circuits/tests/test_filters.py index 329a3bc3f..46c2bacbe 100644 --- a/netbox/circuits/tests/test_filters.py +++ b/netbox/circuits/tests/test_filters.py @@ -8,7 +8,7 @@ from dcim.models import Region, Site class ProviderTestCase(TestCase): queryset = Provider.objects.all() - filterset = ProviderFilter + filterset = ProviderFilterSet @classmethod def setUpTestData(cls): @@ -91,7 +91,7 @@ class ProviderTestCase(TestCase): class CircuitTypeTestCase(TestCase): queryset = CircuitType.objects.all() - filterset = CircuitTypeFilter + filterset = CircuitTypeFilterSet @classmethod def setUpTestData(cls): @@ -117,7 +117,7 @@ class CircuitTypeTestCase(TestCase): class CircuitTestCase(TestCase): queryset = Circuit.objects.all() - filterset = CircuitFilter + filterset = CircuitFilterSet @classmethod def setUpTestData(cls): @@ -219,7 +219,7 @@ class CircuitTestCase(TestCase): class CircuitTerminationTestCase(TestCase): queryset = CircuitTermination.objects.all() - filterset = CircuitTerminationFilter + filterset = CircuitTerminationFilterSet @classmethod def setUpTestData(cls): diff --git a/netbox/circuits/views.py b/netbox/circuits/views.py index 02f3e9374..1df1e8d4f 100644 --- a/netbox/circuits/views.py +++ b/netbox/circuits/views.py @@ -23,7 +23,7 @@ from .models import Circuit, CircuitTermination, CircuitType, Provider class ProviderListView(PermissionRequiredMixin, ObjectListView): permission_required = 'circuits.view_provider' queryset = Provider.objects.annotate(count_circuits=Count('circuits')) - filter = filters.ProviderFilter + filter = filters.ProviderFilterSet filter_form = forms.ProviderFilterForm table = tables.ProviderDetailTable template_name = 'circuits/provider_list.html' @@ -73,7 +73,7 @@ class ProviderBulkImportView(PermissionRequiredMixin, BulkImportView): class ProviderBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'circuits.change_provider' queryset = Provider.objects.all() - filter = filters.ProviderFilter + filter = filters.ProviderFilterSet table = tables.ProviderTable form = forms.ProviderBulkEditForm default_return_url = 'circuits:provider_list' @@ -82,7 +82,7 @@ class ProviderBulkEditView(PermissionRequiredMixin, BulkEditView): class ProviderBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'circuits.delete_provider' queryset = Provider.objects.all() - filter = filters.ProviderFilter + filter = filters.ProviderFilterSet table = tables.ProviderTable default_return_url = 'circuits:provider_list' @@ -136,7 +136,7 @@ class CircuitListView(PermissionRequiredMixin, ObjectListView): a_side=Subquery(_terminations.filter(term_side='A').values('site__name')[:1]), z_side=Subquery(_terminations.filter(term_side='Z').values('site__name')[:1]), ) - filter = filters.CircuitFilter + filter = filters.CircuitFilterSet filter_form = forms.CircuitFilterForm table = tables.CircuitTable template_name = 'circuits/circuit_list.html' @@ -194,7 +194,7 @@ class CircuitBulkImportView(PermissionRequiredMixin, BulkImportView): class CircuitBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'circuits.change_circuit' queryset = Circuit.objects.prefetch_related('provider', 'type', 'tenant').prefetch_related('terminations__site') - filter = filters.CircuitFilter + filter = filters.CircuitFilterSet table = tables.CircuitTable form = forms.CircuitBulkEditForm default_return_url = 'circuits:circuit_list' @@ -203,7 +203,7 @@ class CircuitBulkEditView(PermissionRequiredMixin, BulkEditView): class CircuitBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'circuits.delete_circuit' queryset = Circuit.objects.prefetch_related('provider', 'type', 'tenant').prefetch_related('terminations__site') - filter = filters.CircuitFilter + filter = filters.CircuitFilterSet table = tables.CircuitTable default_return_url = 'circuits:circuit_list' diff --git a/netbox/netbox/views.py b/netbox/netbox/views.py index 17423d1e4..766bd2041 100644 --- a/netbox/netbox/views.py +++ b/netbox/netbox/views.py @@ -7,7 +7,7 @@ from rest_framework.response import Response from rest_framework.reverse import reverse from rest_framework.views import APIView -from circuits.filters import CircuitFilter, ProviderFilter +from circuits.filters import CircuitFilterSet, ProviderFilterSet from circuits.models import Circuit, CircuitTermination, Provider from circuits.tables import CircuitTable, ProviderTable from dcim.filters import ( @@ -42,7 +42,7 @@ SEARCH_TYPES = OrderedDict(( ('provider', { 'permission': 'circuits.view_provider', 'queryset': Provider.objects.all(), - 'filter': ProviderFilter, + 'filter': ProviderFilterSet, 'table': ProviderTable, 'url': 'circuits:provider_list', }), @@ -59,7 +59,7 @@ SEARCH_TYPES = OrderedDict(( CircuitTermination.objects.filter(circuit=OuterRef('pk')).filter(term_side='Z').values('site__name')[:1] ), ), - 'filter': CircuitFilter, + 'filter': CircuitFilterSet, 'table': CircuitTable, 'url': 'circuits:circuit_list', }), From 0767de205e05ee6efca990862abc634232fd9066 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 9 Jan 2020 20:30:40 -0500 Subject: [PATCH 02/10] Renamed dcim FilterSets --- netbox/dcim/api/views.py | 70 +++++++-------- netbox/dcim/filters.py | 140 +++++++++++++++--------------- netbox/dcim/tests/test_filters.py | 72 +++++++-------- netbox/dcim/views.py | 96 ++++++++++---------- netbox/netbox/views.py | 20 ++--- 5 files changed, 199 insertions(+), 199 deletions(-) diff --git a/netbox/dcim/api/views.py b/netbox/dcim/api/views.py index 68fd62eb2..6fa202994 100644 --- a/netbox/dcim/api/views.py +++ b/netbox/dcim/api/views.py @@ -106,7 +106,7 @@ class RegionViewSet(ModelViewSet): site_count=Count('sites') ) serializer_class = serializers.RegionSerializer - filterset_class = filters.RegionFilter + filterset_class = filters.RegionFilterSet # @@ -125,7 +125,7 @@ class SiteViewSet(CustomFieldModelViewSet): virtualmachine_count=get_subquery(VirtualMachine, 'cluster__site'), ) serializer_class = serializers.SiteSerializer - filterset_class = filters.SiteFilter + filterset_class = filters.SiteFilterSet @action(detail=True) def graphs(self, request, pk): @@ -147,7 +147,7 @@ class RackGroupViewSet(ModelViewSet): rack_count=Count('racks') ) serializer_class = serializers.RackGroupSerializer - filterset_class = filters.RackGroupFilter + filterset_class = filters.RackGroupFilterSet # @@ -159,7 +159,7 @@ class RackRoleViewSet(ModelViewSet): rack_count=Count('racks') ) serializer_class = serializers.RackRoleSerializer - filterset_class = filters.RackRoleFilter + filterset_class = filters.RackRoleFilterSet # @@ -174,7 +174,7 @@ class RackViewSet(CustomFieldModelViewSet): powerfeed_count=get_subquery(PowerFeed, 'rack') ) serializer_class = serializers.RackSerializer - filterset_class = filters.RackFilter + filterset_class = filters.RackFilterSet @swagger_auto_schema(deprecated=True) @action(detail=True) @@ -244,7 +244,7 @@ class RackViewSet(CustomFieldModelViewSet): class RackReservationViewSet(ModelViewSet): queryset = RackReservation.objects.prefetch_related('rack', 'user', 'tenant') serializer_class = serializers.RackReservationSerializer - filterset_class = filters.RackReservationFilter + filterset_class = filters.RackReservationFilterSet # Assign user from request def perform_create(self, serializer): @@ -262,7 +262,7 @@ class ManufacturerViewSet(ModelViewSet): platform_count=get_subquery(Platform, 'manufacturer') ) serializer_class = serializers.ManufacturerSerializer - filterset_class = filters.ManufacturerFilter + filterset_class = filters.ManufacturerFilterSet # @@ -274,7 +274,7 @@ class DeviceTypeViewSet(CustomFieldModelViewSet): device_count=Count('instances') ) serializer_class = serializers.DeviceTypeSerializer - filterset_class = filters.DeviceTypeFilter + filterset_class = filters.DeviceTypeFilterSet # @@ -284,49 +284,49 @@ class DeviceTypeViewSet(CustomFieldModelViewSet): class ConsolePortTemplateViewSet(ModelViewSet): queryset = ConsolePortTemplate.objects.prefetch_related('device_type__manufacturer') serializer_class = serializers.ConsolePortTemplateSerializer - filterset_class = filters.ConsolePortTemplateFilter + filterset_class = filters.ConsolePortTemplateFilterSet class ConsoleServerPortTemplateViewSet(ModelViewSet): queryset = ConsoleServerPortTemplate.objects.prefetch_related('device_type__manufacturer') serializer_class = serializers.ConsoleServerPortTemplateSerializer - filterset_class = filters.ConsoleServerPortTemplateFilter + filterset_class = filters.ConsoleServerPortTemplateFilterSet class PowerPortTemplateViewSet(ModelViewSet): queryset = PowerPortTemplate.objects.prefetch_related('device_type__manufacturer') serializer_class = serializers.PowerPortTemplateSerializer - filterset_class = filters.PowerPortTemplateFilter + filterset_class = filters.PowerPortTemplateFilterSet class PowerOutletTemplateViewSet(ModelViewSet): queryset = PowerOutletTemplate.objects.prefetch_related('device_type__manufacturer') serializer_class = serializers.PowerOutletTemplateSerializer - filterset_class = filters.PowerOutletTemplateFilter + filterset_class = filters.PowerOutletTemplateFilterSet class InterfaceTemplateViewSet(ModelViewSet): queryset = InterfaceTemplate.objects.prefetch_related('device_type__manufacturer') serializer_class = serializers.InterfaceTemplateSerializer - filterset_class = filters.InterfaceTemplateFilter + filterset_class = filters.InterfaceTemplateFilterSet class FrontPortTemplateViewSet(ModelViewSet): queryset = FrontPortTemplate.objects.prefetch_related('device_type__manufacturer') serializer_class = serializers.FrontPortTemplateSerializer - filterset_class = filters.FrontPortTemplateFilter + filterset_class = filters.FrontPortTemplateFilterSet class RearPortTemplateViewSet(ModelViewSet): queryset = RearPortTemplate.objects.prefetch_related('device_type__manufacturer') serializer_class = serializers.RearPortTemplateSerializer - filterset_class = filters.RearPortTemplateFilter + filterset_class = filters.RearPortTemplateFilterSet class DeviceBayTemplateViewSet(ModelViewSet): queryset = DeviceBayTemplate.objects.prefetch_related('device_type__manufacturer') serializer_class = serializers.DeviceBayTemplateSerializer - filterset_class = filters.DeviceBayTemplateFilter + filterset_class = filters.DeviceBayTemplateFilterSet # @@ -339,7 +339,7 @@ class DeviceRoleViewSet(ModelViewSet): virtualmachine_count=get_subquery(VirtualMachine, 'role') ) serializer_class = serializers.DeviceRoleSerializer - filterset_class = filters.DeviceRoleFilter + filterset_class = filters.DeviceRoleFilterSet # @@ -352,7 +352,7 @@ class PlatformViewSet(ModelViewSet): virtualmachine_count=get_subquery(VirtualMachine, 'platform') ) serializer_class = serializers.PlatformSerializer - filterset_class = filters.PlatformFilter + filterset_class = filters.PlatformFilterSet # @@ -364,7 +364,7 @@ class DeviceViewSet(CustomFieldModelViewSet): 'device_type__manufacturer', 'device_role', 'tenant', 'platform', 'site', 'rack', 'parent_bay', 'virtual_chassis__master', 'primary_ip4__nat_outside', 'primary_ip6__nat_outside', 'tags', ) - filterset_class = filters.DeviceFilter + filterset_class = filters.DeviceFilterSet def get_serializer_class(self): """ @@ -503,13 +503,13 @@ class DeviceViewSet(CustomFieldModelViewSet): class ConsolePortViewSet(CableTraceMixin, ModelViewSet): queryset = ConsolePort.objects.prefetch_related('device', 'connected_endpoint__device', 'cable', 'tags') serializer_class = serializers.ConsolePortSerializer - filterset_class = filters.ConsolePortFilter + filterset_class = filters.ConsolePortFilterSet class ConsoleServerPortViewSet(CableTraceMixin, ModelViewSet): queryset = ConsoleServerPort.objects.prefetch_related('device', 'connected_endpoint__device', 'cable', 'tags') serializer_class = serializers.ConsoleServerPortSerializer - filterset_class = filters.ConsoleServerPortFilter + filterset_class = filters.ConsoleServerPortFilterSet class PowerPortViewSet(CableTraceMixin, ModelViewSet): @@ -517,13 +517,13 @@ class PowerPortViewSet(CableTraceMixin, ModelViewSet): 'device', '_connected_poweroutlet__device', '_connected_powerfeed', 'cable', 'tags' ) serializer_class = serializers.PowerPortSerializer - filterset_class = filters.PowerPortFilter + filterset_class = filters.PowerPortFilterSet class PowerOutletViewSet(CableTraceMixin, ModelViewSet): queryset = PowerOutlet.objects.prefetch_related('device', 'connected_endpoint__device', 'cable', 'tags') serializer_class = serializers.PowerOutletSerializer - filterset_class = filters.PowerOutletFilter + filterset_class = filters.PowerOutletFilterSet class InterfaceViewSet(CableTraceMixin, ModelViewSet): @@ -533,7 +533,7 @@ class InterfaceViewSet(CableTraceMixin, ModelViewSet): device__isnull=False ) serializer_class = serializers.InterfaceSerializer - filterset_class = filters.InterfaceFilter + filterset_class = filters.InterfaceFilterSet @action(detail=True) def graphs(self, request, pk): @@ -549,25 +549,25 @@ class InterfaceViewSet(CableTraceMixin, ModelViewSet): class FrontPortViewSet(ModelViewSet): queryset = FrontPort.objects.prefetch_related('device__device_type__manufacturer', 'rear_port', 'cable', 'tags') serializer_class = serializers.FrontPortSerializer - filterset_class = filters.FrontPortFilter + filterset_class = filters.FrontPortFilterSet class RearPortViewSet(ModelViewSet): queryset = RearPort.objects.prefetch_related('device__device_type__manufacturer', 'cable', 'tags') serializer_class = serializers.RearPortSerializer - filterset_class = filters.RearPortFilter + filterset_class = filters.RearPortFilterSet class DeviceBayViewSet(ModelViewSet): queryset = DeviceBay.objects.prefetch_related('installed_device').prefetch_related('tags') serializer_class = serializers.DeviceBaySerializer - filterset_class = filters.DeviceBayFilter + filterset_class = filters.DeviceBayFilterSet class InventoryItemViewSet(ModelViewSet): queryset = InventoryItem.objects.prefetch_related('device', 'manufacturer').prefetch_related('tags') serializer_class = serializers.InventoryItemSerializer - filterset_class = filters.InventoryItemFilter + filterset_class = filters.InventoryItemFilterSet # @@ -581,7 +581,7 @@ class ConsoleConnectionViewSet(ListModelMixin, GenericViewSet): connected_endpoint__isnull=False ) serializer_class = serializers.ConsolePortSerializer - filterset_class = filters.ConsoleConnectionFilter + filterset_class = filters.ConsoleConnectionFilterSet class PowerConnectionViewSet(ListModelMixin, GenericViewSet): @@ -591,7 +591,7 @@ class PowerConnectionViewSet(ListModelMixin, GenericViewSet): _connected_poweroutlet__isnull=False ) serializer_class = serializers.PowerPortSerializer - filterset_class = filters.PowerConnectionFilter + filterset_class = filters.PowerConnectionFilterSet class InterfaceConnectionViewSet(ListModelMixin, GenericViewSet): @@ -603,7 +603,7 @@ class InterfaceConnectionViewSet(ListModelMixin, GenericViewSet): pk__lt=F('_connected_interface') ) serializer_class = serializers.InterfaceConnectionSerializer - filterset_class = filters.InterfaceConnectionFilter + filterset_class = filters.InterfaceConnectionFilterSet # @@ -615,7 +615,7 @@ class CableViewSet(ModelViewSet): 'termination_a', 'termination_b' ) serializer_class = serializers.CableSerializer - filterset_class = filters.CableFilter + filterset_class = filters.CableFilterSet # @@ -627,7 +627,7 @@ class VirtualChassisViewSet(ModelViewSet): member_count=Count('members') ) serializer_class = serializers.VirtualChassisSerializer - filterset_class = filters.VirtualChassisFilter + filterset_class = filters.VirtualChassisFilterSet # @@ -641,7 +641,7 @@ class PowerPanelViewSet(ModelViewSet): powerfeed_count=Count('powerfeeds') ) serializer_class = serializers.PowerPanelSerializer - filterset_class = filters.PowerPanelFilter + filterset_class = filters.PowerPanelFilterSet # @@ -651,7 +651,7 @@ class PowerPanelViewSet(ModelViewSet): class PowerFeedViewSet(CustomFieldModelViewSet): queryset = PowerFeed.objects.prefetch_related('power_panel', 'rack', 'tags') serializer_class = serializers.PowerFeedSerializer - filterset_class = filters.PowerFeedFilter + filterset_class = filters.PowerFeedFilterSet # diff --git a/netbox/dcim/filters.py b/netbox/dcim/filters.py index 98ecf2fb4..dc09ee6da 100644 --- a/netbox/dcim/filters.py +++ b/netbox/dcim/filters.py @@ -23,45 +23,45 @@ from .models import ( __all__ = ( - 'CableFilter', - 'ConsoleConnectionFilter', - 'ConsolePortFilter', - 'ConsolePortTemplateFilter', - 'ConsoleServerPortFilter', - 'ConsoleServerPortTemplateFilter', - 'DeviceBayFilter', - 'DeviceBayTemplateFilter', - 'DeviceFilter', - 'DeviceRoleFilter', - 'DeviceTypeFilter', - 'FrontPortFilter', - 'FrontPortTemplateFilter', - 'InterfaceConnectionFilter', - 'InterfaceFilter', - 'InterfaceTemplateFilter', - 'InventoryItemFilter', - 'ManufacturerFilter', - 'PlatformFilter', - 'PowerConnectionFilter', - 'PowerFeedFilter', - 'PowerOutletFilter', - 'PowerOutletTemplateFilter', - 'PowerPanelFilter', - 'PowerPortFilter', - 'PowerPortTemplateFilter', - 'RackFilter', - 'RackGroupFilter', - 'RackReservationFilter', - 'RackRoleFilter', - 'RearPortFilter', - 'RearPortTemplateFilter', - 'RegionFilter', - 'SiteFilter', - 'VirtualChassisFilter', + 'CableFilterSet', + 'ConsoleConnectionFilterSet', + 'ConsolePortFilterSet', + 'ConsolePortTemplateFilterSet', + 'ConsoleServerPortFilterSet', + 'ConsoleServerPortTemplateFilterSet', + 'DeviceBayFilterSet', + 'DeviceBayTemplateFilterSet', + 'DeviceFilterSet', + 'DeviceRoleFilterSet', + 'DeviceTypeFilterSet', + 'FrontPortFilterSet', + 'FrontPortTemplateFilterSet', + 'InterfaceConnectionFilterSet', + 'InterfaceFilterSet', + 'InterfaceTemplateFilterSet', + 'InventoryItemFilterSet', + 'ManufacturerFilterSet', + 'PlatformFilterSet', + 'PowerConnectionFilterSet', + 'PowerFeedFilterSet', + 'PowerOutletFilterSet', + 'PowerOutletTemplateFilterSet', + 'PowerPanelFilterSet', + 'PowerPortFilterSet', + 'PowerPortTemplateFilterSet', + 'RackFilterSet', + 'RackGroupFilterSet', + 'RackReservationFilterSet', + 'RackRoleFilterSet', + 'RearPortFilterSet', + 'RearPortTemplateFilterSet', + 'RegionFilterSet', + 'SiteFilterSet', + 'VirtualChassisFilterSet', ) -class RegionFilter(NameSlugSearchFilterSet): +class RegionFilterSet(NameSlugSearchFilterSet): parent_id = django_filters.ModelMultipleChoiceFilter( queryset=Region.objects.all(), label='Parent region (ID)', @@ -78,7 +78,7 @@ class RegionFilter(NameSlugSearchFilterSet): fields = ['id', 'name', 'slug'] -class SiteFilter(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet): +class SiteFilterSet(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet): id__in = NumericInFilter( field_name='id', lookup_expr='in' @@ -132,7 +132,7 @@ class SiteFilter(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet return queryset.filter(qs_filter) -class RackGroupFilter(NameSlugSearchFilterSet): +class RackGroupFilterSet(NameSlugSearchFilterSet): region_id = TreeNodeMultipleChoiceFilter( queryset=Region.objects.all(), field_name='site__region__in', @@ -160,14 +160,14 @@ class RackGroupFilter(NameSlugSearchFilterSet): fields = ['id', 'name', 'slug'] -class RackRoleFilter(NameSlugSearchFilterSet): +class RackRoleFilterSet(NameSlugSearchFilterSet): class Meta: model = RackRole fields = ['id', 'name', 'slug', 'color'] -class RackFilter(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet): +class RackFilterSet(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet): id__in = NumericInFilter( field_name='id', lookup_expr='in' @@ -245,7 +245,7 @@ class RackFilter(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet ) -class RackReservationFilter(TenancyFilterSet): +class RackReservationFilterSet(TenancyFilterSet): id__in = NumericInFilter( field_name='id', lookup_expr='in' @@ -306,14 +306,14 @@ class RackReservationFilter(TenancyFilterSet): ) -class ManufacturerFilter(NameSlugSearchFilterSet): +class ManufacturerFilterSet(NameSlugSearchFilterSet): class Meta: model = Manufacturer fields = ['id', 'name', 'slug'] -class DeviceTypeFilter(CustomFieldFilterSet, CreatedUpdatedFilterSet): +class DeviceTypeFilterSet(CustomFieldFilterSet, CreatedUpdatedFilterSet): id__in = NumericInFilter( field_name='id', lookup_expr='in' @@ -404,70 +404,70 @@ class DeviceTypeComponentFilterSet(NameSlugSearchFilterSet): ) -class ConsolePortTemplateFilter(DeviceTypeComponentFilterSet): +class ConsolePortTemplateFilterSet(DeviceTypeComponentFilterSet): class Meta: model = ConsolePortTemplate fields = ['id', 'name', 'type'] -class ConsoleServerPortTemplateFilter(DeviceTypeComponentFilterSet): +class ConsoleServerPortTemplateFilterSet(DeviceTypeComponentFilterSet): class Meta: model = ConsoleServerPortTemplate fields = ['id', 'name', 'type'] -class PowerPortTemplateFilter(DeviceTypeComponentFilterSet): +class PowerPortTemplateFilterSet(DeviceTypeComponentFilterSet): class Meta: model = PowerPortTemplate fields = ['id', 'name', 'type', 'maximum_draw', 'allocated_draw'] -class PowerOutletTemplateFilter(DeviceTypeComponentFilterSet): +class PowerOutletTemplateFilterSet(DeviceTypeComponentFilterSet): class Meta: model = PowerOutletTemplate fields = ['id', 'name', 'type', 'feed_leg'] -class InterfaceTemplateFilter(DeviceTypeComponentFilterSet): +class InterfaceTemplateFilterSet(DeviceTypeComponentFilterSet): class Meta: model = InterfaceTemplate fields = ['id', 'name', 'type', 'mgmt_only'] -class FrontPortTemplateFilter(DeviceTypeComponentFilterSet): +class FrontPortTemplateFilterSet(DeviceTypeComponentFilterSet): class Meta: model = FrontPortTemplate fields = ['id', 'name', 'type'] -class RearPortTemplateFilter(DeviceTypeComponentFilterSet): +class RearPortTemplateFilterSet(DeviceTypeComponentFilterSet): class Meta: model = RearPortTemplate fields = ['id', 'name', 'type', 'positions'] -class DeviceBayTemplateFilter(DeviceTypeComponentFilterSet): +class DeviceBayTemplateFilterSet(DeviceTypeComponentFilterSet): class Meta: model = DeviceBayTemplate fields = ['id', 'name'] -class DeviceRoleFilter(NameSlugSearchFilterSet): +class DeviceRoleFilterSet(NameSlugSearchFilterSet): class Meta: model = DeviceRole fields = ['id', 'name', 'slug', 'color', 'vm_role'] -class PlatformFilter(NameSlugSearchFilterSet): +class PlatformFilterSet(NameSlugSearchFilterSet): manufacturer_id = django_filters.ModelMultipleChoiceFilter( field_name='manufacturer', queryset=Manufacturer.objects.all(), @@ -485,7 +485,7 @@ class PlatformFilter(NameSlugSearchFilterSet): fields = ['id', 'name', 'slug', 'napalm_driver'] -class DeviceFilter(LocalConfigContextFilter, TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet): +class DeviceFilterSet(LocalConfigContextFilter, TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet): id__in = NumericInFilter( field_name='id', lookup_expr='in' @@ -723,7 +723,7 @@ class DeviceComponentFilterSet(django_filters.FilterSet): ) -class ConsolePortFilter(DeviceComponentFilterSet): +class ConsolePortFilterSet(DeviceComponentFilterSet): type = django_filters.MultipleChoiceFilter( choices=ConsolePortTypeChoices, null_value=None @@ -739,7 +739,7 @@ class ConsolePortFilter(DeviceComponentFilterSet): fields = ['id', 'name', 'description', 'connection_status'] -class ConsoleServerPortFilter(DeviceComponentFilterSet): +class ConsoleServerPortFilterSet(DeviceComponentFilterSet): type = django_filters.MultipleChoiceFilter( choices=ConsolePortTypeChoices, null_value=None @@ -755,7 +755,7 @@ class ConsoleServerPortFilter(DeviceComponentFilterSet): fields = ['id', 'name', 'description', 'connection_status'] -class PowerPortFilter(DeviceComponentFilterSet): +class PowerPortFilterSet(DeviceComponentFilterSet): type = django_filters.MultipleChoiceFilter( choices=PowerPortTypeChoices, null_value=None @@ -771,7 +771,7 @@ class PowerPortFilter(DeviceComponentFilterSet): fields = ['id', 'name', 'maximum_draw', 'allocated_draw', 'description', 'connection_status'] -class PowerOutletFilter(DeviceComponentFilterSet): +class PowerOutletFilterSet(DeviceComponentFilterSet): type = django_filters.MultipleChoiceFilter( choices=PowerOutletTypeChoices, null_value=None @@ -787,7 +787,7 @@ class PowerOutletFilter(DeviceComponentFilterSet): fields = ['id', 'name', 'feed_leg', 'description', 'connection_status'] -class InterfaceFilter(django_filters.FilterSet): +class InterfaceFilterSet(django_filters.FilterSet): """ Not using DeviceComponentFilterSet for Interfaces because we need to check for VirtualChassis membership. """ @@ -915,7 +915,7 @@ class InterfaceFilter(django_filters.FilterSet): }.get(value, queryset.none()) -class FrontPortFilter(DeviceComponentFilterSet): +class FrontPortFilterSet(DeviceComponentFilterSet): cabled = django_filters.BooleanFilter( field_name='cable', lookup_expr='isnull', @@ -927,7 +927,7 @@ class FrontPortFilter(DeviceComponentFilterSet): fields = ['id', 'name', 'type', 'description'] -class RearPortFilter(DeviceComponentFilterSet): +class RearPortFilterSet(DeviceComponentFilterSet): cabled = django_filters.BooleanFilter( field_name='cable', lookup_expr='isnull', @@ -939,14 +939,14 @@ class RearPortFilter(DeviceComponentFilterSet): fields = ['id', 'name', 'type', 'positions', 'description'] -class DeviceBayFilter(DeviceComponentFilterSet): +class DeviceBayFilterSet(DeviceComponentFilterSet): class Meta: model = DeviceBay fields = ['id', 'name', 'description'] -class InventoryItemFilter(DeviceComponentFilterSet): +class InventoryItemFilterSet(DeviceComponentFilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -1017,7 +1017,7 @@ class InventoryItemFilter(DeviceComponentFilterSet): return queryset.filter(qs_filter) -class VirtualChassisFilter(django_filters.FilterSet): +class VirtualChassisFilterSet(django_filters.FilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -1071,7 +1071,7 @@ class VirtualChassisFilter(django_filters.FilterSet): return queryset.filter(qs_filter) -class CableFilter(django_filters.FilterSet): +class CableFilterSet(django_filters.FilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -1126,7 +1126,7 @@ class CableFilter(django_filters.FilterSet): return queryset -class ConsoleConnectionFilter(django_filters.FilterSet): +class ConsoleConnectionFilterSet(django_filters.FilterSet): site = django_filters.CharFilter( method='filter_site', label='Site (slug)', @@ -1157,7 +1157,7 @@ class ConsoleConnectionFilter(django_filters.FilterSet): ) -class PowerConnectionFilter(django_filters.FilterSet): +class PowerConnectionFilterSet(django_filters.FilterSet): site = django_filters.CharFilter( method='filter_site', label='Site (slug)', @@ -1188,7 +1188,7 @@ class PowerConnectionFilter(django_filters.FilterSet): ) -class InterfaceConnectionFilter(django_filters.FilterSet): +class InterfaceConnectionFilterSet(django_filters.FilterSet): site = django_filters.CharFilter( method='filter_site', label='Site (slug)', @@ -1222,7 +1222,7 @@ class InterfaceConnectionFilter(django_filters.FilterSet): ) -class PowerPanelFilter(django_filters.FilterSet): +class PowerPanelFilterSet(django_filters.FilterSet): id__in = NumericInFilter( field_name='id', lookup_expr='in' @@ -1271,7 +1271,7 @@ class PowerPanelFilter(django_filters.FilterSet): return queryset.filter(qs_filter) -class PowerFeedFilter(CustomFieldFilterSet, CreatedUpdatedFilterSet): +class PowerFeedFilterSet(CustomFieldFilterSet, CreatedUpdatedFilterSet): id__in = NumericInFilter( field_name='id', lookup_expr='in' diff --git a/netbox/dcim/tests/test_filters.py b/netbox/dcim/tests/test_filters.py index d4167d2d7..18d0a581b 100644 --- a/netbox/dcim/tests/test_filters.py +++ b/netbox/dcim/tests/test_filters.py @@ -42,27 +42,27 @@ class RegionTestCase(TestCase): def test_id(self): id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': [str(id) for id in id_list]} - self.assertEqual(RegionFilter(params, self.queryset).qs.count(), 2) + self.assertEqual(RegionFilterSet(params, self.queryset).qs.count(), 2) def test_name(self): params = {'name': ['Region 1', 'Region 2']} - self.assertEqual(RegionFilter(params, self.queryset).qs.count(), 2) + self.assertEqual(RegionFilterSet(params, self.queryset).qs.count(), 2) def test_slug(self): params = {'slug': ['region-1', 'region-2']} - self.assertEqual(RegionFilter(params, self.queryset).qs.count(), 2) + self.assertEqual(RegionFilterSet(params, self.queryset).qs.count(), 2) def test_parent(self): parent_regions = Region.objects.filter(parent__isnull=True)[:2] params = {'parent_id': [parent_regions[0].pk, parent_regions[1].pk]} - self.assertEqual(RegionFilter(params, self.queryset).qs.count(), 4) + self.assertEqual(RegionFilterSet(params, self.queryset).qs.count(), 4) params = {'parent': [parent_regions[0].slug, parent_regions[1].slug]} - self.assertEqual(RegionFilter(params, self.queryset).qs.count(), 4) + self.assertEqual(RegionFilterSet(params, self.queryset).qs.count(), 4) class SiteTestCase(TestCase): queryset = Site.objects.all() - filterset = SiteFilter + filterset = SiteFilterSet @classmethod def setUpTestData(cls): @@ -142,7 +142,7 @@ class SiteTestCase(TestCase): class RackGroupTestCase(TestCase): queryset = RackGroup.objects.all() - filterset = RackGroupFilter + filterset = RackGroupFilterSet @classmethod def setUpTestData(cls): @@ -199,7 +199,7 @@ class RackGroupTestCase(TestCase): class RackRoleTestCase(TestCase): queryset = RackRole.objects.all() - filterset = RackRoleFilter + filterset = RackRoleFilterSet @classmethod def setUpTestData(cls): @@ -231,7 +231,7 @@ class RackRoleTestCase(TestCase): class RackTestCase(TestCase): queryset = Rack.objects.all() - filterset = RackFilter + filterset = RackFilterSet @classmethod def setUpTestData(cls): @@ -368,7 +368,7 @@ class RackTestCase(TestCase): class RackReservationTestCase(TestCase): queryset = RackReservation.objects.all() - filterset = RackReservationFilter + filterset = RackReservationFilterSet @classmethod def setUpTestData(cls): @@ -438,7 +438,7 @@ class RackReservationTestCase(TestCase): class ManufacturerTestCase(TestCase): queryset = Manufacturer.objects.all() - filterset = ManufacturerFilter + filterset = ManufacturerFilterSet @classmethod def setUpTestData(cls): @@ -466,7 +466,7 @@ class ManufacturerTestCase(TestCase): class DeviceTypeTestCase(TestCase): queryset = DeviceType.objects.all() - filterset = DeviceTypeFilter + filterset = DeviceTypeFilterSet @classmethod def setUpTestData(cls): @@ -604,7 +604,7 @@ class DeviceTypeTestCase(TestCase): class ConsolePortTemplateTestCase(TestCase): queryset = ConsolePortTemplate.objects.all() - filterset = ConsolePortTemplateFilter + filterset = ConsolePortTemplateFilterSet @classmethod def setUpTestData(cls): @@ -641,7 +641,7 @@ class ConsolePortTemplateTestCase(TestCase): class ConsoleServerPortTemplateTestCase(TestCase): queryset = ConsoleServerPortTemplate.objects.all() - filterset = ConsoleServerPortTemplateFilter + filterset = ConsoleServerPortTemplateFilterSet @classmethod def setUpTestData(cls): @@ -678,7 +678,7 @@ class ConsoleServerPortTemplateTestCase(TestCase): class PowerPortTemplateTestCase(TestCase): queryset = PowerPortTemplate.objects.all() - filterset = PowerPortTemplateFilter + filterset = PowerPortTemplateFilterSet @classmethod def setUpTestData(cls): @@ -723,7 +723,7 @@ class PowerPortTemplateTestCase(TestCase): class PowerOutletTemplateTestCase(TestCase): queryset = PowerOutletTemplate.objects.all() - filterset = PowerOutletTemplateFilter + filterset = PowerOutletTemplateFilterSet @classmethod def setUpTestData(cls): @@ -765,7 +765,7 @@ class PowerOutletTemplateTestCase(TestCase): class InterfaceTemplateTestCase(TestCase): queryset = InterfaceTemplate.objects.all() - filterset = InterfaceTemplateFilter + filterset = InterfaceTemplateFilterSet @classmethod def setUpTestData(cls): @@ -813,7 +813,7 @@ class InterfaceTemplateTestCase(TestCase): class FrontPortTemplateTestCase(TestCase): queryset = FrontPortTemplate.objects.all() - filterset = FrontPortTemplateFilter + filterset = FrontPortTemplateFilterSet @classmethod def setUpTestData(cls): @@ -862,7 +862,7 @@ class FrontPortTemplateTestCase(TestCase): class RearPortTemplateTestCase(TestCase): queryset = RearPortTemplate.objects.all() - filterset = RearPortTemplateFilter + filterset = RearPortTemplateFilterSet @classmethod def setUpTestData(cls): @@ -908,7 +908,7 @@ class RearPortTemplateTestCase(TestCase): class DeviceBayTemplateTestCase(TestCase): queryset = DeviceBayTemplate.objects.all() - filterset = DeviceBayTemplateFilter + filterset = DeviceBayTemplateFilterSet @classmethod def setUpTestData(cls): @@ -945,7 +945,7 @@ class DeviceBayTemplateTestCase(TestCase): class DeviceRoleTestCase(TestCase): queryset = DeviceRole.objects.all() - filterset = DeviceRoleFilter + filterset = DeviceRoleFilterSet @classmethod def setUpTestData(cls): @@ -983,7 +983,7 @@ class DeviceRoleTestCase(TestCase): class PlatformTestCase(TestCase): queryset = Platform.objects.all() - filterset = PlatformFilter + filterset = PlatformFilterSet @classmethod def setUpTestData(cls): @@ -1029,7 +1029,7 @@ class PlatformTestCase(TestCase): class DeviceTestCase(TestCase): queryset = Device.objects.all() - filterset = DeviceFilter + filterset = DeviceFilterSet @classmethod def setUpTestData(cls): @@ -1331,7 +1331,7 @@ class DeviceTestCase(TestCase): class ConsolePortTestCase(TestCase): queryset = ConsolePort.objects.all() - filterset = ConsolePortFilter + filterset = ConsolePortFilterSet @classmethod def setUpTestData(cls): @@ -1401,7 +1401,7 @@ class ConsolePortTestCase(TestCase): class ConsoleServerPortTestCase(TestCase): queryset = ConsoleServerPort.objects.all() - filterset = ConsoleServerPortFilter + filterset = ConsoleServerPortFilterSet @classmethod def setUpTestData(cls): @@ -1471,7 +1471,7 @@ class ConsoleServerPortTestCase(TestCase): class PowerPortTestCase(TestCase): queryset = PowerPort.objects.all() - filterset = PowerPortFilter + filterset = PowerPortFilterSet @classmethod def setUpTestData(cls): @@ -1549,7 +1549,7 @@ class PowerPortTestCase(TestCase): class PowerOutletTestCase(TestCase): queryset = PowerOutlet.objects.all() - filterset = PowerOutletFilter + filterset = PowerOutletFilterSet @classmethod def setUpTestData(cls): @@ -1624,7 +1624,7 @@ class PowerOutletTestCase(TestCase): class InterfaceTestCase(TestCase): queryset = Interface.objects.all() - filterset = InterfaceFilter + filterset = InterfaceFilterSet @classmethod def setUpTestData(cls): @@ -1725,7 +1725,7 @@ class InterfaceTestCase(TestCase): class FrontPortTestCase(TestCase): queryset = FrontPort.objects.all() - filterset = FrontPortFilter + filterset = FrontPortFilterSet @classmethod def setUpTestData(cls): @@ -1802,7 +1802,7 @@ class FrontPortTestCase(TestCase): class RearPortTestCase(TestCase): queryset = RearPort.objects.all() - filterset = RearPortFilter + filterset = RearPortFilterSet @classmethod def setUpTestData(cls): @@ -1873,7 +1873,7 @@ class RearPortTestCase(TestCase): class DeviceBayTestCase(TestCase): queryset = DeviceBay.objects.all() - filterset = DeviceBayFilter + filterset = DeviceBayFilterSet @classmethod def setUpTestData(cls): @@ -1920,7 +1920,7 @@ class DeviceBayTestCase(TestCase): class InventoryItemTestCase(TestCase): queryset = InventoryItem.objects.all() - filterset = InventoryItemFilter + filterset = InventoryItemFilterSet @classmethod def setUpTestData(cls): @@ -2038,7 +2038,7 @@ class InventoryItemTestCase(TestCase): class VirtualChassisTestCase(TestCase): queryset = VirtualChassis.objects.all() - filterset = VirtualChassisFilter + filterset = VirtualChassisFilterSet @classmethod def setUpTestData(cls): @@ -2109,7 +2109,7 @@ class VirtualChassisTestCase(TestCase): class CableTestCase(TestCase): queryset = Cable.objects.all() - filterset = CableFilter + filterset = CableFilterSet @classmethod def setUpTestData(cls): @@ -2221,7 +2221,7 @@ class CableTestCase(TestCase): class PowerPanelTestCase(TestCase): queryset = PowerPanel.objects.all() - filterset = PowerPanelFilter + filterset = PowerPanelFilterSet @classmethod def setUpTestData(cls): @@ -2281,7 +2281,7 @@ class PowerPanelTestCase(TestCase): class PowerFeedTestCase(TestCase): queryset = PowerFeed.objects.all() - filterset = PowerFeedFilter + filterset = PowerFeedFilterSet @classmethod def setUpTestData(cls): diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index 84bb116b0..ad267fb6a 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -148,7 +148,7 @@ class RegionListView(PermissionRequiredMixin, ObjectListView): 'site_count', cumulative=True ) - filter = filters.RegionFilter + filter = filters.RegionFilterSet filter_form = forms.RegionFilterForm table = tables.RegionTable template_name = 'dcim/region_list.html' @@ -175,7 +175,7 @@ class RegionBulkImportView(PermissionRequiredMixin, BulkImportView): class RegionBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'dcim.delete_region' queryset = Region.objects.all() - filter = filters.RegionFilter + filter = filters.RegionFilterSet table = tables.RegionTable default_return_url = 'dcim:region_list' @@ -187,7 +187,7 @@ class RegionBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class SiteListView(PermissionRequiredMixin, ObjectListView): permission_required = 'dcim.view_site' queryset = Site.objects.prefetch_related('region', 'tenant') - filter = filters.SiteFilter + filter = filters.SiteFilterSet filter_form = forms.SiteFilterForm table = tables.SiteTable template_name = 'dcim/site_list.html' @@ -246,7 +246,7 @@ class SiteBulkImportView(PermissionRequiredMixin, BulkImportView): class SiteBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'dcim.change_site' queryset = Site.objects.prefetch_related('region', 'tenant') - filter = filters.SiteFilter + filter = filters.SiteFilterSet table = tables.SiteTable form = forms.SiteBulkEditForm default_return_url = 'dcim:site_list' @@ -255,7 +255,7 @@ class SiteBulkEditView(PermissionRequiredMixin, BulkEditView): class SiteBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'dcim.delete_site' queryset = Site.objects.prefetch_related('region', 'tenant') - filter = filters.SiteFilter + filter = filters.SiteFilterSet table = tables.SiteTable default_return_url = 'dcim:site_list' @@ -267,7 +267,7 @@ class SiteBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class RackGroupListView(PermissionRequiredMixin, ObjectListView): permission_required = 'dcim.view_rackgroup' queryset = RackGroup.objects.prefetch_related('site').annotate(rack_count=Count('racks')) - filter = filters.RackGroupFilter + filter = filters.RackGroupFilterSet filter_form = forms.RackGroupFilterForm table = tables.RackGroupTable template_name = 'dcim/rackgroup_list.html' @@ -294,7 +294,7 @@ class RackGroupBulkImportView(PermissionRequiredMixin, BulkImportView): class RackGroupBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'dcim.delete_rackgroup' queryset = RackGroup.objects.prefetch_related('site').annotate(rack_count=Count('racks')) - filter = filters.RackGroupFilter + filter = filters.RackGroupFilterSet table = tables.RackGroupTable default_return_url = 'dcim:rackgroup_list' @@ -346,7 +346,7 @@ class RackListView(PermissionRequiredMixin, ObjectListView): ).annotate( device_count=Count('devices') ) - filter = filters.RackFilter + filter = filters.RackFilterSet filter_form = forms.RackFilterForm table = tables.RackDetailTable template_name = 'dcim/rack_list.html' @@ -361,7 +361,7 @@ class RackElevationListView(PermissionRequiredMixin, View): def get(self, request): racks = Rack.objects.prefetch_related('site', 'group', 'tenant', 'role', 'devices__device_type') - racks = filters.RackFilter(request.GET, racks).qs + racks = filters.RackFilterSet(request.GET, racks).qs total_count = racks.count() # Pagination @@ -450,7 +450,7 @@ class RackBulkImportView(PermissionRequiredMixin, BulkImportView): class RackBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'dcim.change_rack' queryset = Rack.objects.prefetch_related('site', 'group', 'tenant', 'role') - filter = filters.RackFilter + filter = filters.RackFilterSet table = tables.RackTable form = forms.RackBulkEditForm default_return_url = 'dcim:rack_list' @@ -459,7 +459,7 @@ class RackBulkEditView(PermissionRequiredMixin, BulkEditView): class RackBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'dcim.delete_rack' queryset = Rack.objects.prefetch_related('site', 'group', 'tenant', 'role') - filter = filters.RackFilter + filter = filters.RackFilterSet table = tables.RackTable default_return_url = 'dcim:rack_list' @@ -471,7 +471,7 @@ class RackBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class RackReservationListView(PermissionRequiredMixin, ObjectListView): permission_required = 'dcim.view_rackreservation' queryset = RackReservation.objects.prefetch_related('rack__site') - filter = filters.RackReservationFilter + filter = filters.RackReservationFilterSet filter_form = forms.RackReservationFilterForm table = tables.RackReservationTable template_name = 'dcim/rackreservation_list.html' @@ -507,7 +507,7 @@ class RackReservationDeleteView(PermissionRequiredMixin, ObjectDeleteView): class RackReservationBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'dcim.change_rackreservation' queryset = RackReservation.objects.prefetch_related('rack', 'user') - filter = filters.RackReservationFilter + filter = filters.RackReservationFilterSet table = tables.RackReservationTable form = forms.RackReservationBulkEditForm default_return_url = 'dcim:rackreservation_list' @@ -516,7 +516,7 @@ class RackReservationBulkEditView(PermissionRequiredMixin, BulkEditView): class RackReservationBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'dcim.delete_rackreservation' queryset = RackReservation.objects.prefetch_related('rack', 'user') - filter = filters.RackReservationFilter + filter = filters.RackReservationFilterSet table = tables.RackReservationTable default_return_url = 'dcim:rackreservation_list' @@ -568,7 +568,7 @@ class ManufacturerBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class DeviceTypeListView(PermissionRequiredMixin, ObjectListView): permission_required = 'dcim.view_devicetype' queryset = DeviceType.objects.prefetch_related('manufacturer').annotate(instance_count=Count('instances')) - filter = filters.DeviceTypeFilter + filter = filters.DeviceTypeFilterSet filter_form = forms.DeviceTypeFilterForm table = tables.DeviceTypeTable template_name = 'dcim/devicetype_list.html' @@ -685,7 +685,7 @@ class DeviceTypeImportView(PermissionRequiredMixin, ObjectImportView): class DeviceTypeBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'dcim.change_devicetype' queryset = DeviceType.objects.prefetch_related('manufacturer').annotate(instance_count=Count('instances')) - filter = filters.DeviceTypeFilter + filter = filters.DeviceTypeFilterSet table = tables.DeviceTypeTable form = forms.DeviceTypeBulkEditForm default_return_url = 'dcim:devicetype_list' @@ -694,7 +694,7 @@ class DeviceTypeBulkEditView(PermissionRequiredMixin, BulkEditView): class DeviceTypeBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'dcim.delete_devicetype' queryset = DeviceType.objects.prefetch_related('manufacturer').annotate(instance_count=Count('instances')) - filter = filters.DeviceTypeFilter + filter = filters.DeviceTypeFilterSet table = tables.DeviceTypeTable default_return_url = 'dcim:devicetype_list' @@ -976,7 +976,7 @@ class DeviceListView(PermissionRequiredMixin, ObjectListView): queryset = Device.objects.prefetch_related( 'device_type__manufacturer', 'device_role', 'tenant', 'site', 'rack', 'primary_ip4', 'primary_ip6' ) - filter = filters.DeviceFilter + filter = filters.DeviceFilterSet filter_form = forms.DeviceFilterForm table = tables.DeviceDetailTable template_name = 'dcim/device_list.html' @@ -1176,7 +1176,7 @@ class ChildDeviceBulkImportView(PermissionRequiredMixin, BulkImportView): class DeviceBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'dcim.change_device' queryset = Device.objects.prefetch_related('tenant', 'site', 'rack', 'device_role', 'device_type__manufacturer') - filter = filters.DeviceFilter + filter = filters.DeviceFilterSet table = tables.DeviceTable form = forms.DeviceBulkEditForm default_return_url = 'dcim:device_list' @@ -1185,7 +1185,7 @@ class DeviceBulkEditView(PermissionRequiredMixin, BulkEditView): class DeviceBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'dcim.delete_device' queryset = Device.objects.prefetch_related('tenant', 'site', 'rack', 'device_role', 'device_type__manufacturer') - filter = filters.DeviceFilter + filter = filters.DeviceFilterSet table = tables.DeviceTable default_return_url = 'dcim:device_list' @@ -1197,7 +1197,7 @@ class DeviceBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class ConsolePortListView(PermissionRequiredMixin, ObjectListView): permission_required = 'dcim.view_consoleport' queryset = ConsolePort.objects.prefetch_related('device', 'device__tenant', 'device__site', 'cable') - filter = filters.ConsolePortFilter + filter = filters.ConsolePortFilterSet filter_form = forms.ConsolePortFilterForm table = tables.ConsolePortDetailTable template_name = 'dcim/device_component_list.html' @@ -1245,7 +1245,7 @@ class ConsolePortBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class ConsoleServerPortListView(PermissionRequiredMixin, ObjectListView): permission_required = 'dcim.view_consoleserverport' queryset = ConsoleServerPort.objects.prefetch_related('device', 'device__tenant', 'device__site', 'cable') - filter = filters.ConsoleServerPortFilter + filter = filters.ConsoleServerPortFilterSet filter_form = forms.ConsoleServerPortFilterForm table = tables.ConsoleServerPortDetailTable template_name = 'dcim/device_component_list.html' @@ -1313,7 +1313,7 @@ class ConsoleServerPortBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class PowerPortListView(PermissionRequiredMixin, ObjectListView): permission_required = 'dcim.view_powerport' queryset = PowerPort.objects.prefetch_related('device', 'device__tenant', 'device__site', 'cable') - filter = filters.PowerPortFilter + filter = filters.PowerPortFilterSet filter_form = forms.PowerPortFilterForm table = tables.PowerPortDetailTable template_name = 'dcim/device_component_list.html' @@ -1361,7 +1361,7 @@ class PowerPortBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class PowerOutletListView(PermissionRequiredMixin, ObjectListView): permission_required = 'dcim.view_poweroutlet' queryset = PowerOutlet.objects.prefetch_related('device', 'device__tenant', 'device__site', 'cable') - filter = filters.PowerOutletFilter + filter = filters.PowerOutletFilterSet filter_form = forms.PowerOutletFilterForm table = tables.PowerOutletDetailTable template_name = 'dcim/device_component_list.html' @@ -1429,7 +1429,7 @@ class PowerOutletBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class InterfaceListView(PermissionRequiredMixin, ObjectListView): permission_required = 'dcim.view_interface' queryset = Interface.objects.prefetch_related('device', 'device__tenant', 'device__site', 'cable') - filter = filters.InterfaceFilter + filter = filters.InterfaceFilterSet filter_form = forms.InterfaceFilterForm table = tables.InterfaceDetailTable template_name = 'dcim/device_component_list.html' @@ -1534,7 +1534,7 @@ class InterfaceBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class FrontPortListView(PermissionRequiredMixin, ObjectListView): permission_required = 'dcim.view_frontport' queryset = FrontPort.objects.prefetch_related('device', 'device__tenant', 'device__site', 'cable') - filter = filters.FrontPortFilter + filter = filters.FrontPortFilterSet filter_form = forms.FrontPortFilterForm table = tables.FrontPortDetailTable template_name = 'dcim/device_component_list.html' @@ -1602,7 +1602,7 @@ class FrontPortBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class RearPortListView(PermissionRequiredMixin, ObjectListView): permission_required = 'dcim.view_rearport' queryset = RearPort.objects.prefetch_related('device', 'device__tenant', 'device__site', 'cable') - filter = filters.RearPortFilter + filter = filters.RearPortFilterSet filter_form = forms.RearPortFilterForm table = tables.RearPortDetailTable template_name = 'dcim/device_component_list.html' @@ -1672,7 +1672,7 @@ class DeviceBayListView(PermissionRequiredMixin, ObjectListView): queryset = DeviceBay.objects.prefetch_related( 'device', 'device__site', 'installed_device', 'installed_device__site' ) - filter = filters.DeviceBayFilter + filter = filters.DeviceBayFilterSet filter_form = forms.DeviceBayFilterForm table = tables.DeviceBayDetailTable template_name = 'dcim/device_component_list.html' @@ -1799,7 +1799,7 @@ class DeviceBulkAddConsolePortView(PermissionRequiredMixin, BulkComponentCreateV form = forms.DeviceBulkAddComponentForm model = ConsolePort model_form = forms.ConsolePortForm - filter = filters.DeviceFilter + filter = filters.DeviceFilterSet table = tables.DeviceTable default_return_url = 'dcim:device_list' @@ -1811,7 +1811,7 @@ class DeviceBulkAddConsoleServerPortView(PermissionRequiredMixin, BulkComponentC form = forms.DeviceBulkAddComponentForm model = ConsoleServerPort model_form = forms.ConsoleServerPortForm - filter = filters.DeviceFilter + filter = filters.DeviceFilterSet table = tables.DeviceTable default_return_url = 'dcim:device_list' @@ -1823,7 +1823,7 @@ class DeviceBulkAddPowerPortView(PermissionRequiredMixin, BulkComponentCreateVie form = forms.DeviceBulkAddComponentForm model = PowerPort model_form = forms.PowerPortForm - filter = filters.DeviceFilter + filter = filters.DeviceFilterSet table = tables.DeviceTable default_return_url = 'dcim:device_list' @@ -1835,7 +1835,7 @@ class DeviceBulkAddPowerOutletView(PermissionRequiredMixin, BulkComponentCreateV form = forms.DeviceBulkAddComponentForm model = PowerOutlet model_form = forms.PowerOutletForm - filter = filters.DeviceFilter + filter = filters.DeviceFilterSet table = tables.DeviceTable default_return_url = 'dcim:device_list' @@ -1847,7 +1847,7 @@ class DeviceBulkAddInterfaceView(PermissionRequiredMixin, BulkComponentCreateVie form = forms.DeviceBulkAddInterfaceForm model = Interface model_form = forms.InterfaceForm - filter = filters.DeviceFilter + filter = filters.DeviceFilterSet table = tables.DeviceTable default_return_url = 'dcim:device_list' @@ -1859,7 +1859,7 @@ class DeviceBulkAddDeviceBayView(PermissionRequiredMixin, BulkComponentCreateVie form = forms.DeviceBulkAddComponentForm model = DeviceBay model_form = forms.DeviceBayForm - filter = filters.DeviceFilter + filter = filters.DeviceFilterSet table = tables.DeviceTable default_return_url = 'dcim:device_list' @@ -1873,7 +1873,7 @@ class CableListView(PermissionRequiredMixin, ObjectListView): queryset = Cable.objects.prefetch_related( 'termination_a', 'termination_b' ) - filter = filters.CableFilter + filter = filters.CableFilterSet filter_form = forms.CableFilterForm table = tables.CableTable template_name = 'dcim/cable_list.html' @@ -2010,7 +2010,7 @@ class CableBulkImportView(PermissionRequiredMixin, BulkImportView): class CableBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'dcim.change_cable' queryset = Cable.objects.prefetch_related('termination_a', 'termination_b') - filter = filters.CableFilter + filter = filters.CableFilterSet table = tables.CableTable form = forms.CableBulkEditForm default_return_url = 'dcim:cable_list' @@ -2019,7 +2019,7 @@ class CableBulkEditView(PermissionRequiredMixin, BulkEditView): class CableBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'dcim.delete_cable' queryset = Cable.objects.prefetch_related('termination_a', 'termination_b') - filter = filters.CableFilter + filter = filters.CableFilterSet table = tables.CableTable default_return_url = 'dcim:cable_list' @@ -2037,7 +2037,7 @@ class ConsoleConnectionsListView(PermissionRequiredMixin, ObjectListView): ).order_by( 'cable', 'connected_endpoint__device__name', 'connected_endpoint__name' ) - filter = filters.ConsoleConnectionFilter + filter = filters.ConsoleConnectionFilterSet filter_form = forms.ConsoleConnectionFilterForm table = tables.ConsoleConnectionTable template_name = 'dcim/console_connections_list.html' @@ -2068,7 +2068,7 @@ class PowerConnectionsListView(PermissionRequiredMixin, ObjectListView): ).order_by( 'cable', '_connected_poweroutlet__device__name', '_connected_poweroutlet__name' ) - filter = filters.PowerConnectionFilter + filter = filters.PowerConnectionFilterSet filter_form = forms.PowerConnectionFilterForm table = tables.PowerConnectionTable template_name = 'dcim/power_connections_list.html' @@ -2101,7 +2101,7 @@ class InterfaceConnectionsListView(PermissionRequiredMixin, ObjectListView): ).order_by( 'device' ) - filter = filters.InterfaceConnectionFilter + filter = filters.InterfaceConnectionFilterSet filter_form = forms.InterfaceConnectionFilterForm table = tables.InterfaceConnectionTable template_name = 'dcim/interface_connections_list.html' @@ -2136,7 +2136,7 @@ class InterfaceConnectionsListView(PermissionRequiredMixin, ObjectListView): class InventoryItemListView(PermissionRequiredMixin, ObjectListView): permission_required = 'dcim.view_inventoryitem' queryset = InventoryItem.objects.prefetch_related('device', 'manufacturer') - filter = filters.InventoryItemFilter + filter = filters.InventoryItemFilterSet filter_form = forms.InventoryItemFilterForm table = tables.InventoryItemTable template_name = 'dcim/inventoryitem_list.html' @@ -2171,7 +2171,7 @@ class InventoryItemBulkImportView(PermissionRequiredMixin, BulkImportView): class InventoryItemBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'dcim.change_inventoryitem' queryset = InventoryItem.objects.prefetch_related('device', 'manufacturer') - filter = filters.InventoryItemFilter + filter = filters.InventoryItemFilterSet table = tables.InventoryItemTable form = forms.InventoryItemBulkEditForm default_return_url = 'dcim:inventoryitem_list' @@ -2193,7 +2193,7 @@ class VirtualChassisListView(PermissionRequiredMixin, ObjectListView): permission_required = 'dcim.view_virtualchassis' queryset = VirtualChassis.objects.prefetch_related('master').annotate(member_count=Count('members')) table = tables.VirtualChassisTable - filter = filters.VirtualChassisFilter + filter = filters.VirtualChassisFilterSet filter_form = forms.VirtualChassisFilterForm template_name = 'dcim/virtualchassis_list.html' @@ -2436,7 +2436,7 @@ class PowerPanelListView(PermissionRequiredMixin, ObjectListView): ).annotate( powerfeed_count=Count('powerfeeds') ) - filter = filters.PowerPanelFilter + filter = filters.PowerPanelFilterSet filter_form = forms.PowerPanelFilterForm table = tables.PowerPanelTable template_name = 'dcim/powerpanel_list.html' @@ -2491,7 +2491,7 @@ class PowerPanelBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): ).annotate( rack_count=Count('powerfeeds') ) - filter = filters.PowerPanelFilter + filter = filters.PowerPanelFilterSet table = tables.PowerPanelTable default_return_url = 'dcim:powerpanel_list' @@ -2505,7 +2505,7 @@ class PowerFeedListView(PermissionRequiredMixin, ObjectListView): queryset = PowerFeed.objects.prefetch_related( 'power_panel', 'rack' ) - filter = filters.PowerFeedFilter + filter = filters.PowerFeedFilterSet filter_form = forms.PowerFeedFilterForm table = tables.PowerFeedTable template_name = 'dcim/powerfeed_list.html' @@ -2551,7 +2551,7 @@ class PowerFeedBulkImportView(PermissionRequiredMixin, BulkImportView): class PowerFeedBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'dcim.change_powerfeed' queryset = PowerFeed.objects.prefetch_related('power_panel', 'rack') - filter = filters.PowerFeedFilter + filter = filters.PowerFeedFilterSet table = tables.PowerFeedTable form = forms.PowerFeedBulkEditForm default_return_url = 'dcim:powerfeed_list' @@ -2560,6 +2560,6 @@ class PowerFeedBulkEditView(PermissionRequiredMixin, BulkEditView): class PowerFeedBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'dcim.delete_powerfeed' queryset = PowerFeed.objects.prefetch_related('power_panel', 'rack') - filter = filters.PowerFeedFilter + filter = filters.PowerFeedFilterSet table = tables.PowerFeedTable default_return_url = 'dcim:powerfeed_list' diff --git a/netbox/netbox/views.py b/netbox/netbox/views.py index 766bd2041..904f5bd6a 100644 --- a/netbox/netbox/views.py +++ b/netbox/netbox/views.py @@ -11,8 +11,8 @@ from circuits.filters import CircuitFilterSet, ProviderFilterSet from circuits.models import Circuit, CircuitTermination, Provider from circuits.tables import CircuitTable, ProviderTable from dcim.filters import ( - CableFilter, DeviceFilter, DeviceTypeFilter, PowerFeedFilter, RackFilter, RackGroupFilter, SiteFilter, - VirtualChassisFilter, + CableFilterSet, DeviceFilterSet, DeviceTypeFilterSet, PowerFeedFilterSet, RackFilterSet, RackGroupFilterSet, SiteFilterSet, + VirtualChassisFilterSet, ) from dcim.models import ( Cable, ConsolePort, Device, DeviceType, Interface, PowerPanel, PowerFeed, PowerPort, Rack, RackGroup, Site, VirtualChassis @@ -67,28 +67,28 @@ SEARCH_TYPES = OrderedDict(( ('site', { 'permission': 'dcim.view_site', 'queryset': Site.objects.prefetch_related('region', 'tenant'), - 'filter': SiteFilter, + 'filter': SiteFilterSet, 'table': SiteTable, 'url': 'dcim:site_list', }), ('rack', { 'permission': 'dcim.view_rack', 'queryset': Rack.objects.prefetch_related('site', 'group', 'tenant', 'role'), - 'filter': RackFilter, + 'filter': RackFilterSet, 'table': RackTable, 'url': 'dcim:rack_list', }), ('rackgroup', { 'permission': 'dcim.view_rackgroup', 'queryset': RackGroup.objects.prefetch_related('site').annotate(rack_count=Count('racks')), - 'filter': RackGroupFilter, + 'filter': RackGroupFilterSet, 'table': RackGroupTable, 'url': 'dcim:rackgroup_list', }), ('devicetype', { 'permission': 'dcim.view_devicetype', 'queryset': DeviceType.objects.prefetch_related('manufacturer').annotate(instance_count=Count('instances')), - 'filter': DeviceTypeFilter, + 'filter': DeviceTypeFilterSet, 'table': DeviceTypeTable, 'url': 'dcim:devicetype_list', }), @@ -97,28 +97,28 @@ SEARCH_TYPES = OrderedDict(( 'queryset': Device.objects.prefetch_related( 'device_type__manufacturer', 'device_role', 'tenant', 'site', 'rack', 'primary_ip4', 'primary_ip6', ), - 'filter': DeviceFilter, + 'filter': DeviceFilterSet, 'table': DeviceDetailTable, 'url': 'dcim:device_list', }), ('virtualchassis', { 'permission': 'dcim.view_virtualchassis', 'queryset': VirtualChassis.objects.prefetch_related('master').annotate(member_count=Count('members')), - 'filter': VirtualChassisFilter, + 'filter': VirtualChassisFilterSet, 'table': VirtualChassisTable, 'url': 'dcim:virtualchassis_list', }), ('cable', { 'permission': 'dcim.view_cable', 'queryset': Cable.objects.all(), - 'filter': CableFilter, + 'filter': CableFilterSet, 'table': CableTable, 'url': 'dcim:cable_list', }), ('powerfeed', { 'permission': 'dcim.view_powerfeed', 'queryset': PowerFeed.objects.all(), - 'filter': PowerFeedFilter, + 'filter': PowerFeedFilterSet, 'table': PowerFeedTable, 'url': 'dcim:powerfeed_list', }), From 97654b7585a13d9fab81123bbbd24a9087e35e98 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 9 Jan 2020 20:35:07 -0500 Subject: [PATCH 03/10] Renamed extras FilterSets --- netbox/dcim/filters.py | 4 ++-- netbox/extras/api/views.py | 10 +++++----- netbox/extras/filters.py | 24 ++++++++++++------------ netbox/extras/tests/test_filters.py | 6 +++--- netbox/extras/views.py | 8 ++++---- 5 files changed, 26 insertions(+), 26 deletions(-) diff --git a/netbox/dcim/filters.py b/netbox/dcim/filters.py index dc09ee6da..59beb1a9c 100644 --- a/netbox/dcim/filters.py +++ b/netbox/dcim/filters.py @@ -2,7 +2,7 @@ import django_filters from django.contrib.auth.models import User from django.db.models import Q -from extras.filters import CustomFieldFilterSet, LocalConfigContextFilter, CreatedUpdatedFilterSet +from extras.filters import CustomFieldFilterSet, LocalConfigContextFilterSet, CreatedUpdatedFilterSet from tenancy.filtersets import TenancyFilterSet from tenancy.models import Tenant from utilities.constants import COLOR_CHOICES @@ -485,7 +485,7 @@ class PlatformFilterSet(NameSlugSearchFilterSet): fields = ['id', 'name', 'slug', 'napalm_driver'] -class DeviceFilterSet(LocalConfigContextFilter, TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet): +class DeviceFilterSet(LocalConfigContextFilterSet, TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet): id__in = NumericInFilter( field_name='id', lookup_expr='in' diff --git a/netbox/extras/api/views.py b/netbox/extras/api/views.py index 3164464f8..1a90b317d 100644 --- a/netbox/extras/api/views.py +++ b/netbox/extras/api/views.py @@ -102,7 +102,7 @@ class CustomFieldModelViewSet(ModelViewSet): class GraphViewSet(ModelViewSet): queryset = Graph.objects.all() serializer_class = serializers.GraphSerializer - filterset_class = filters.GraphFilter + filterset_class = filters.GraphFilterSet # @@ -112,7 +112,7 @@ class GraphViewSet(ModelViewSet): class ExportTemplateViewSet(ModelViewSet): queryset = ExportTemplate.objects.all() serializer_class = serializers.ExportTemplateSerializer - filterset_class = filters.ExportTemplateFilter + filterset_class = filters.ExportTemplateFilterSet # @@ -124,7 +124,7 @@ class TagViewSet(ModelViewSet): tagged_items=Count('extras_taggeditem_items', distinct=True) ) serializer_class = serializers.TagSerializer - filterset_class = filters.TagFilter + filterset_class = filters.TagFilterSet # @@ -145,7 +145,7 @@ class ConfigContextViewSet(ModelViewSet): 'regions', 'sites', 'roles', 'platforms', 'tenant_groups', 'tenants', ) serializer_class = serializers.ConfigContextSerializer - filterset_class = filters.ConfigContextFilter + filterset_class = filters.ConfigContextFilterSet # @@ -284,4 +284,4 @@ class ObjectChangeViewSet(ReadOnlyModelViewSet): """ queryset = ObjectChange.objects.prefetch_related('user') serializer_class = serializers.ObjectChangeSerializer - filterset_class = filters.ObjectChangeFilter + filterset_class = filters.ObjectChangeFilterSet diff --git a/netbox/extras/filters.py b/netbox/extras/filters.py index e672c4b50..792f8cee8 100644 --- a/netbox/extras/filters.py +++ b/netbox/extras/filters.py @@ -9,15 +9,15 @@ from .models import ConfigContext, CustomField, Graph, ExportTemplate, ObjectCha __all__ = ( - 'ConfigContextFilter', + 'ConfigContextFilterSet', 'CreatedUpdatedFilterSet', 'CustomFieldFilter', 'CustomFieldFilterSet', - 'ExportTemplateFilter', - 'GraphFilter', - 'LocalConfigContextFilter', - 'ObjectChangeFilter', - 'TagFilter', + 'ExportTemplateFilterSet', + 'GraphFilterSet', + 'LocalConfigContextFilterSet', + 'ObjectChangeFilterSet', + 'TagFilterSet', ) @@ -88,21 +88,21 @@ class CustomFieldFilterSet(django_filters.FilterSet): self.filters['cf_{}'.format(cf.name)] = CustomFieldFilter(field_name=cf.name, custom_field=cf) -class GraphFilter(django_filters.FilterSet): +class GraphFilterSet(django_filters.FilterSet): class Meta: model = Graph fields = ['type', 'name'] -class ExportTemplateFilter(django_filters.FilterSet): +class ExportTemplateFilterSet(django_filters.FilterSet): class Meta: model = ExportTemplate fields = ['content_type', 'name', 'template_language'] -class TagFilter(django_filters.FilterSet): +class TagFilterSet(django_filters.FilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -121,7 +121,7 @@ class TagFilter(django_filters.FilterSet): ) -class ConfigContextFilter(django_filters.FilterSet): +class ConfigContextFilterSet(django_filters.FilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -217,7 +217,7 @@ class ConfigContextFilter(django_filters.FilterSet): # Filter for Local Config Context Data # -class LocalConfigContextFilter(django_filters.FilterSet): +class LocalConfigContextFilterSet(django_filters.FilterSet): local_context_data = django_filters.BooleanFilter( method='_local_context_data', label='Has local config context data', @@ -227,7 +227,7 @@ class LocalConfigContextFilter(django_filters.FilterSet): return queryset.exclude(local_context_data__isnull=value) -class ObjectChangeFilter(django_filters.FilterSet): +class ObjectChangeFilterSet(django_filters.FilterSet): q = django_filters.CharFilter( method='search', label='Search', diff --git a/netbox/extras/tests/test_filters.py b/netbox/extras/tests/test_filters.py index dac495a52..f1f5f0d88 100644 --- a/netbox/extras/tests/test_filters.py +++ b/netbox/extras/tests/test_filters.py @@ -10,7 +10,7 @@ from tenancy.models import Tenant, TenantGroup class GraphTestCase(TestCase): queryset = Graph.objects.all() - filterset = GraphFilter + filterset = GraphFilterSet @classmethod def setUpTestData(cls): @@ -35,7 +35,7 @@ class GraphTestCase(TestCase): class ExportTemplateTestCase(TestCase): queryset = ExportTemplate.objects.all() - filterset = ExportTemplateFilter + filterset = ExportTemplateFilterSet @classmethod def setUpTestData(cls): @@ -64,7 +64,7 @@ class ExportTemplateTestCase(TestCase): class ConfigContextTestCase(TestCase): queryset = ConfigContext.objects.all() - filterset = ConfigContextFilter + filterset = ConfigContextFilterSet @classmethod def setUpTestData(cls): diff --git a/netbox/extras/views.py b/netbox/extras/views.py index df1f38d11..38d8f7342 100644 --- a/netbox/extras/views.py +++ b/netbox/extras/views.py @@ -31,7 +31,7 @@ class TagListView(PermissionRequiredMixin, ObjectListView): ).order_by( 'name' ) - filter = filters.TagFilter + filter = filters.TagFilterSet filter_form = forms.TagFilterForm table = TagTable template_name = 'extras/tag_list.html' @@ -108,7 +108,7 @@ class TagBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class ConfigContextListView(PermissionRequiredMixin, ObjectListView): permission_required = 'extras.view_configcontext' queryset = ConfigContext.objects.all() - filter = filters.ConfigContextFilter + filter = filters.ConfigContextFilterSet filter_form = forms.ConfigContextFilterForm table = ConfigContextTable template_name = 'extras/configcontext_list.html' @@ -141,7 +141,7 @@ class ConfigContextEditView(ConfigContextCreateView): class ConfigContextBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'extras.change_configcontext' queryset = ConfigContext.objects.all() - filter = filters.ConfigContextFilter + filter = filters.ConfigContextFilterSet table = ConfigContextTable form = forms.ConfigContextBulkEditForm default_return_url = 'extras:configcontext_list' @@ -187,7 +187,7 @@ class ObjectConfigContextView(View): class ObjectChangeListView(PermissionRequiredMixin, ObjectListView): permission_required = 'extras.view_objectchange' queryset = ObjectChange.objects.prefetch_related('user', 'changed_object_type') - filter = filters.ObjectChangeFilter + filter = filters.ObjectChangeFilterSet filter_form = forms.ObjectChangeFilterForm table = ObjectChangeTable template_name = 'extras/objectchange_list.html' From 83c0d1ef44d3d482d997f61d2ce136d5e8a35c71 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 9 Jan 2020 20:37:26 -0500 Subject: [PATCH 04/10] Renamed ipam FilterSets --- netbox/ipam/api/views.py | 18 ++++++------- netbox/ipam/filters.py | 36 ++++++++++++------------- netbox/ipam/tests/test_filters.py | 18 ++++++------- netbox/ipam/views.py | 44 +++++++++++++++---------------- netbox/netbox/views.py | 12 ++++----- 5 files changed, 64 insertions(+), 64 deletions(-) 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', }), From 15e1f62919c66f14b18a0e22a93562c0cd13ac44 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 9 Jan 2020 20:38:59 -0500 Subject: [PATCH 05/10] Renamed secrets FilterSets --- netbox/netbox/views.py | 4 ++-- netbox/secrets/api/views.py | 4 ++-- netbox/secrets/filters.py | 8 ++++---- netbox/secrets/tests/test_filters.py | 4 ++-- netbox/secrets/views.py | 6 +++--- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/netbox/netbox/views.py b/netbox/netbox/views.py index a27569950..aef3bc06b 100644 --- a/netbox/netbox/views.py +++ b/netbox/netbox/views.py @@ -25,7 +25,7 @@ from extras.models import ObjectChange, ReportResult 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 +from secrets.filters import SecretFilterSet from secrets.models import Secret from secrets.tables import SecretTable from tenancy.filters import TenantFilter @@ -179,7 +179,7 @@ SEARCH_TYPES = OrderedDict(( ('secret', { 'permission': 'secrets.view_secret', 'queryset': Secret.objects.prefetch_related('role', 'device'), - 'filter': SecretFilter, + 'filter': SecretFilterSet, 'table': SecretTable, 'url': 'secrets:secret_list', }), diff --git a/netbox/secrets/api/views.py b/netbox/secrets/api/views.py index ee2b87a1f..873679775 100644 --- a/netbox/secrets/api/views.py +++ b/netbox/secrets/api/views.py @@ -38,7 +38,7 @@ class SecretRoleViewSet(ModelViewSet): ) serializer_class = serializers.SecretRoleSerializer permission_classes = [IsAuthenticated] - filterset_class = filters.SecretRoleFilter + filterset_class = filters.SecretRoleFilterSet # @@ -50,7 +50,7 @@ class SecretViewSet(ModelViewSet): 'device__primary_ip4', 'device__primary_ip6', 'role', 'role__users', 'role__groups', 'tags', ) serializer_class = serializers.SecretSerializer - filterset_class = filters.SecretFilter + filterset_class = filters.SecretFilterSet master_key = None diff --git a/netbox/secrets/filters.py b/netbox/secrets/filters.py index 2998b9c18..0c2b01f4d 100644 --- a/netbox/secrets/filters.py +++ b/netbox/secrets/filters.py @@ -8,19 +8,19 @@ from .models import Secret, SecretRole __all__ = ( - 'SecretFilter', - 'SecretRoleFilter', + 'SecretFilterSet', + 'SecretRoleFilterSet', ) -class SecretRoleFilter(NameSlugSearchFilterSet): +class SecretRoleFilterSet(NameSlugSearchFilterSet): class Meta: model = SecretRole fields = ['id', 'name', 'slug'] -class SecretFilter(CustomFieldFilterSet, CreatedUpdatedFilterSet): +class SecretFilterSet(CustomFieldFilterSet, CreatedUpdatedFilterSet): id__in = NumericInFilter( field_name='id', lookup_expr='in' diff --git a/netbox/secrets/tests/test_filters.py b/netbox/secrets/tests/test_filters.py index c378147ff..16ac3ff45 100644 --- a/netbox/secrets/tests/test_filters.py +++ b/netbox/secrets/tests/test_filters.py @@ -7,7 +7,7 @@ from secrets.models import Secret, SecretRole class SecretRoleTestCase(TestCase): queryset = SecretRole.objects.all() - filterset = SecretRoleFilter + filterset = SecretRoleFilterSet @classmethod def setUpTestData(cls): @@ -35,7 +35,7 @@ class SecretRoleTestCase(TestCase): class SecretTestCase(TestCase): queryset = Secret.objects.all() - filterset = SecretFilter + filterset = SecretFilterSet @classmethod def setUpTestData(cls): diff --git a/netbox/secrets/views.py b/netbox/secrets/views.py index 001a09696..e3267f647 100644 --- a/netbox/secrets/views.py +++ b/netbox/secrets/views.py @@ -70,7 +70,7 @@ class SecretRoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class SecretListView(PermissionRequiredMixin, ObjectListView): permission_required = 'secrets.view_secret' queryset = Secret.objects.prefetch_related('role', 'device') - filter = filters.SecretFilter + filter = filters.SecretFilterSet filter_form = forms.SecretFilterForm table = tables.SecretTable template_name = 'secrets/secret_list.html' @@ -248,7 +248,7 @@ class SecretBulkImportView(BulkImportView): class SecretBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'secrets.change_secret' queryset = Secret.objects.prefetch_related('role', 'device') - filter = filters.SecretFilter + filter = filters.SecretFilterSet table = tables.SecretTable form = forms.SecretBulkEditForm default_return_url = 'secrets:secret_list' @@ -257,6 +257,6 @@ class SecretBulkEditView(PermissionRequiredMixin, BulkEditView): class SecretBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'secrets.delete_secret' queryset = Secret.objects.prefetch_related('role', 'device') - filter = filters.SecretFilter + filter = filters.SecretFilterSet table = tables.SecretTable default_return_url = 'secrets:secret_list' From a77fadd114fa2c949c09cecd5dd05738a4d5d872 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 9 Jan 2020 20:40:32 -0500 Subject: [PATCH 06/10] Renamed tenancy FilterSets --- netbox/netbox/views.py | 4 ++-- netbox/tenancy/api/views.py | 4 ++-- netbox/tenancy/filters.py | 8 ++++---- netbox/tenancy/tests/test_filters.py | 4 ++-- netbox/tenancy/views.py | 6 +++--- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/netbox/netbox/views.py b/netbox/netbox/views.py index aef3bc06b..a9adaf31a 100644 --- a/netbox/netbox/views.py +++ b/netbox/netbox/views.py @@ -28,7 +28,7 @@ from ipam.tables import AggregateTable, IPAddressTable, PrefixTable, VLANTable, from secrets.filters import SecretFilterSet from secrets.models import Secret from secrets.tables import SecretTable -from tenancy.filters import TenantFilter +from tenancy.filters import TenantFilterSet from tenancy.models import Tenant from tenancy.tables import TenantTable from virtualization.filters import ClusterFilter, VirtualMachineFilter @@ -187,7 +187,7 @@ SEARCH_TYPES = OrderedDict(( ('tenant', { 'permission': 'tenancy.view_tenant', 'queryset': Tenant.objects.prefetch_related('group'), - 'filter': TenantFilter, + 'filter': TenantFilterSet, 'table': TenantTable, 'url': 'tenancy:tenant_list', }), diff --git a/netbox/tenancy/api/views.py b/netbox/tenancy/api/views.py index 8783a2af7..ab82c3cf5 100644 --- a/netbox/tenancy/api/views.py +++ b/netbox/tenancy/api/views.py @@ -27,7 +27,7 @@ class TenantGroupViewSet(ModelViewSet): tenant_count=get_subquery(Tenant, 'group') ) serializer_class = serializers.TenantGroupSerializer - filterset_class = filters.TenantGroupFilter + filterset_class = filters.TenantGroupFilterSet # @@ -49,4 +49,4 @@ class TenantViewSet(CustomFieldModelViewSet): vrf_count=get_subquery(VRF, 'tenant') ) serializer_class = serializers.TenantSerializer - filterset_class = filters.TenantFilter + filterset_class = filters.TenantFilterSet diff --git a/netbox/tenancy/filters.py b/netbox/tenancy/filters.py index 357c47b29..3ab98743f 100644 --- a/netbox/tenancy/filters.py +++ b/netbox/tenancy/filters.py @@ -7,19 +7,19 @@ from .models import Tenant, TenantGroup __all__ = ( - 'TenantFilter', - 'TenantGroupFilter', + 'TenantFilterSet', + 'TenantGroupFilterSet', ) -class TenantGroupFilter(NameSlugSearchFilterSet): +class TenantGroupFilterSet(NameSlugSearchFilterSet): class Meta: model = TenantGroup fields = ['id', 'name', 'slug'] -class TenantFilter(CustomFieldFilterSet, CreatedUpdatedFilterSet): +class TenantFilterSet(CustomFieldFilterSet, CreatedUpdatedFilterSet): id__in = NumericInFilter( field_name='id', lookup_expr='in' diff --git a/netbox/tenancy/tests/test_filters.py b/netbox/tenancy/tests/test_filters.py index 9bf58d452..300363c83 100644 --- a/netbox/tenancy/tests/test_filters.py +++ b/netbox/tenancy/tests/test_filters.py @@ -6,7 +6,7 @@ from tenancy.models import Tenant, TenantGroup class TenantGroupTestCase(TestCase): queryset = TenantGroup.objects.all() - filterset = TenantGroupFilter + filterset = TenantGroupFilterSet @classmethod def setUpTestData(cls): @@ -34,7 +34,7 @@ class TenantGroupTestCase(TestCase): class TenantTestCase(TestCase): queryset = Tenant.objects.all() - filterset = TenantFilter + filterset = TenantFilterSet @classmethod def setUpTestData(cls): diff --git a/netbox/tenancy/views.py b/netbox/tenancy/views.py index c7690d04b..19c34c38d 100644 --- a/netbox/tenancy/views.py +++ b/netbox/tenancy/views.py @@ -57,7 +57,7 @@ class TenantGroupBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class TenantListView(PermissionRequiredMixin, ObjectListView): permission_required = 'tenancy.view_tenant' queryset = Tenant.objects.prefetch_related('group') - filter = filters.TenantFilter + filter = filters.TenantFilterSet filter_form = forms.TenantFilterForm table = tables.TenantTable template_name = 'tenancy/tenant_list.html' @@ -117,7 +117,7 @@ class TenantBulkImportView(PermissionRequiredMixin, BulkImportView): class TenantBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'tenancy.change_tenant' queryset = Tenant.objects.prefetch_related('group') - filter = filters.TenantFilter + filter = filters.TenantFilterSet table = tables.TenantTable form = forms.TenantBulkEditForm default_return_url = 'tenancy:tenant_list' @@ -126,6 +126,6 @@ class TenantBulkEditView(PermissionRequiredMixin, BulkEditView): class TenantBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'tenancy.delete_tenant' queryset = Tenant.objects.prefetch_related('group') - filter = filters.TenantFilter + filter = filters.TenantFilterSet table = tables.TenantTable default_return_url = 'tenancy:tenant_list' From 49a6a36f4cc3d7149c39d3c1a9fd7da019719e76 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 9 Jan 2020 20:42:32 -0500 Subject: [PATCH 07/10] Renamed virtualization FilterSets --- netbox/netbox/views.py | 6 +++--- netbox/virtualization/api/views.py | 10 +++++----- netbox/virtualization/filters.py | 20 ++++++++++---------- netbox/virtualization/tests/test_filters.py | 10 +++++----- netbox/virtualization/views.py | 14 +++++++------- 5 files changed, 30 insertions(+), 30 deletions(-) diff --git a/netbox/netbox/views.py b/netbox/netbox/views.py index a9adaf31a..83c763a18 100644 --- a/netbox/netbox/views.py +++ b/netbox/netbox/views.py @@ -31,7 +31,7 @@ from secrets.tables import SecretTable from tenancy.filters import TenantFilterSet from tenancy.models import Tenant from tenancy.tables import TenantTable -from virtualization.filters import ClusterFilter, VirtualMachineFilter +from virtualization.filters import ClusterFilterSet, VirtualMachineFilterSet from virtualization.models import Cluster, VirtualMachine from virtualization.tables import ClusterTable, VirtualMachineDetailTable from .forms import SearchForm @@ -126,7 +126,7 @@ SEARCH_TYPES = OrderedDict(( ('cluster', { 'permission': 'virtualization.view_cluster', 'queryset': Cluster.objects.prefetch_related('type', 'group'), - 'filter': ClusterFilter, + 'filter': ClusterFilterSet, 'table': ClusterTable, 'url': 'virtualization:cluster_list', }), @@ -135,7 +135,7 @@ SEARCH_TYPES = OrderedDict(( 'queryset': VirtualMachine.objects.prefetch_related( 'cluster', 'tenant', 'platform', 'primary_ip4', 'primary_ip6', ), - 'filter': VirtualMachineFilter, + 'filter': VirtualMachineFilterSet, 'table': VirtualMachineDetailTable, 'url': 'virtualization:virtualmachine_list', }), diff --git a/netbox/virtualization/api/views.py b/netbox/virtualization/api/views.py index 94b75d154..a45dd6567 100644 --- a/netbox/virtualization/api/views.py +++ b/netbox/virtualization/api/views.py @@ -28,7 +28,7 @@ class ClusterTypeViewSet(ModelViewSet): cluster_count=Count('clusters') ) serializer_class = serializers.ClusterTypeSerializer - filterset_class = filters.ClusterTypeFilter + filterset_class = filters.ClusterTypeFilterSet class ClusterGroupViewSet(ModelViewSet): @@ -36,7 +36,7 @@ class ClusterGroupViewSet(ModelViewSet): cluster_count=Count('clusters') ) serializer_class = serializers.ClusterGroupSerializer - filterset_class = filters.ClusterGroupFilter + filterset_class = filters.ClusterGroupFilterSet class ClusterViewSet(CustomFieldModelViewSet): @@ -47,7 +47,7 @@ class ClusterViewSet(CustomFieldModelViewSet): virtualmachine_count=get_subquery(VirtualMachine, 'cluster') ) serializer_class = serializers.ClusterSerializer - filterset_class = filters.ClusterFilter + filterset_class = filters.ClusterFilterSet # @@ -58,7 +58,7 @@ class VirtualMachineViewSet(CustomFieldModelViewSet): queryset = VirtualMachine.objects.prefetch_related( 'cluster__site', 'role', 'tenant', 'platform', 'primary_ip4', 'primary_ip6', 'tags' ) - filterset_class = filters.VirtualMachineFilter + filterset_class = filters.VirtualMachineFilterSet def get_serializer_class(self): """ @@ -88,7 +88,7 @@ class InterfaceViewSet(ModelViewSet): 'virtual_machine', 'tags' ) serializer_class = serializers.InterfaceSerializer - filterset_class = filters.InterfaceFilter + filterset_class = filters.InterfaceFilterSet def get_serializer_class(self): request = self.get_serializer_context()['request'] diff --git a/netbox/virtualization/filters.py b/netbox/virtualization/filters.py index b9b751724..4aa5302c1 100644 --- a/netbox/virtualization/filters.py +++ b/netbox/virtualization/filters.py @@ -13,29 +13,29 @@ from .models import Cluster, ClusterGroup, ClusterType, VirtualMachine __all__ = ( - 'ClusterFilter', - 'ClusterGroupFilter', - 'ClusterTypeFilter', - 'InterfaceFilter', - 'VirtualMachineFilter', + 'ClusterFilterSet', + 'ClusterGroupFilterSet', + 'ClusterTypeFilterSet', + 'InterfaceFilterSet', + 'VirtualMachineFilterSet', ) -class ClusterTypeFilter(NameSlugSearchFilterSet): +class ClusterTypeFilterSet(NameSlugSearchFilterSet): class Meta: model = ClusterType fields = ['id', 'name', 'slug'] -class ClusterGroupFilter(NameSlugSearchFilterSet): +class ClusterGroupFilterSet(NameSlugSearchFilterSet): class Meta: model = ClusterGroup fields = ['id', 'name', 'slug'] -class ClusterFilter(CustomFieldFilterSet, CreatedUpdatedFilterSet): +class ClusterFilterSet(CustomFieldFilterSet, CreatedUpdatedFilterSet): id__in = NumericInFilter( field_name='id', lookup_expr='in' @@ -104,7 +104,7 @@ class ClusterFilter(CustomFieldFilterSet, CreatedUpdatedFilterSet): ) -class VirtualMachineFilter(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet): +class VirtualMachineFilterSet(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet): id__in = NumericInFilter( field_name='id', lookup_expr='in' @@ -204,7 +204,7 @@ class VirtualMachineFilter(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdate ) -class InterfaceFilter(django_filters.FilterSet): +class InterfaceFilterSet(django_filters.FilterSet): q = django_filters.CharFilter( method='search', label='Search', diff --git a/netbox/virtualization/tests/test_filters.py b/netbox/virtualization/tests/test_filters.py index 5b63ea0ca..d5d5dd35b 100644 --- a/netbox/virtualization/tests/test_filters.py +++ b/netbox/virtualization/tests/test_filters.py @@ -8,7 +8,7 @@ from virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualMac class ClusterTypeTestCase(TestCase): queryset = ClusterType.objects.all() - filterset = ClusterTypeFilter + filterset = ClusterTypeFilterSet @classmethod def setUpTestData(cls): @@ -36,7 +36,7 @@ class ClusterTypeTestCase(TestCase): class ClusterGroupTestCase(TestCase): queryset = ClusterGroup.objects.all() - filterset = ClusterGroupFilter + filterset = ClusterGroupFilterSet @classmethod def setUpTestData(cls): @@ -64,7 +64,7 @@ class ClusterGroupTestCase(TestCase): class ClusterTestCase(TestCase): queryset = Cluster.objects.all() - filterset = ClusterFilter + filterset = ClusterFilterSet @classmethod def setUpTestData(cls): @@ -146,7 +146,7 @@ class ClusterTestCase(TestCase): class VirtualMachineTestCase(TestCase): queryset = VirtualMachine.objects.all() - filterset = VirtualMachineFilter + filterset = VirtualMachineFilterSet @classmethod def setUpTestData(cls): @@ -303,7 +303,7 @@ class VirtualMachineTestCase(TestCase): class InterfaceTestCase(TestCase): queryset = Interface.objects.all() - filterset = InterfaceFilter + filterset = InterfaceFilterSet @classmethod def setUpTestData(cls): diff --git a/netbox/virtualization/views.py b/netbox/virtualization/views.py index 73eccb4b2..2115a4a82 100644 --- a/netbox/virtualization/views.py +++ b/netbox/virtualization/views.py @@ -98,7 +98,7 @@ class ClusterListView(PermissionRequiredMixin, ObjectListView): permission_required = 'virtualization.view_cluster' queryset = Cluster.objects.prefetch_related('type', 'group', 'site', 'tenant') table = tables.ClusterTable - filter = filters.ClusterFilter + filter = filters.ClusterFilterSet filter_form = forms.ClusterFilterForm template_name = 'virtualization/cluster_list.html' @@ -149,7 +149,7 @@ class ClusterBulkImportView(PermissionRequiredMixin, BulkImportView): class ClusterBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'virtualization.change_cluster' queryset = Cluster.objects.prefetch_related('type', 'group', 'site') - filter = filters.ClusterFilter + filter = filters.ClusterFilterSet table = tables.ClusterTable form = forms.ClusterBulkEditForm default_return_url = 'virtualization:cluster_list' @@ -158,7 +158,7 @@ class ClusterBulkEditView(PermissionRequiredMixin, BulkEditView): class ClusterBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'virtualization.delete_cluster' queryset = Cluster.objects.prefetch_related('type', 'group', 'site') - filter = filters.ClusterFilter + filter = filters.ClusterFilterSet table = tables.ClusterTable default_return_url = 'virtualization:cluster_list' @@ -254,7 +254,7 @@ class ClusterRemoveDevicesView(PermissionRequiredMixin, View): class VirtualMachineListView(PermissionRequiredMixin, ObjectListView): permission_required = 'virtualization.view_virtualmachine' queryset = VirtualMachine.objects.prefetch_related('cluster', 'tenant', 'role', 'primary_ip4', 'primary_ip6') - filter = filters.VirtualMachineFilter + filter = filters.VirtualMachineFilterSet filter_form = forms.VirtualMachineFilterForm table = tables.VirtualMachineDetailTable template_name = 'virtualization/virtualmachine_list.html' @@ -310,7 +310,7 @@ class VirtualMachineBulkImportView(PermissionRequiredMixin, BulkImportView): class VirtualMachineBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'virtualization.change_virtualmachine' queryset = VirtualMachine.objects.prefetch_related('cluster', 'tenant', 'role') - filter = filters.VirtualMachineFilter + filter = filters.VirtualMachineFilterSet table = tables.VirtualMachineTable form = forms.VirtualMachineBulkEditForm default_return_url = 'virtualization:virtualmachine_list' @@ -319,7 +319,7 @@ class VirtualMachineBulkEditView(PermissionRequiredMixin, BulkEditView): class VirtualMachineBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'virtualization.delete_virtualmachine' queryset = VirtualMachine.objects.prefetch_related('cluster', 'tenant', 'role') - filter = filters.VirtualMachineFilter + filter = filters.VirtualMachineFilterSet table = tables.VirtualMachineTable default_return_url = 'virtualization:virtualmachine_list' @@ -376,6 +376,6 @@ class VirtualMachineBulkAddInterfaceView(PermissionRequiredMixin, BulkComponentC form = forms.VirtualMachineBulkAddInterfaceForm model = Interface model_form = forms.InterfaceForm - filter = filters.VirtualMachineFilter + filter = filters.VirtualMachineFilterSet table = tables.VirtualMachineTable default_return_url = 'virtualization:virtualmachine_list' From da0ac4ff1ed31e1366161bfa0dfa89e22b31f767 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 9 Jan 2020 20:57:13 -0500 Subject: [PATCH 08/10] Rename filter variables for utility views --- netbox/circuits/views.py | 16 ++-- netbox/dcim/views.py | 140 ++++++++++++++++----------------- netbox/extras/views.py | 14 ++-- netbox/ipam/views.py | 60 +++++++------- netbox/secrets/views.py | 8 +- netbox/tenancy/views.py | 8 +- netbox/utilities/views.py | 28 +++---- netbox/virtualization/views.py | 18 ++--- 8 files changed, 146 insertions(+), 146 deletions(-) diff --git a/netbox/circuits/views.py b/netbox/circuits/views.py index 1df1e8d4f..30c4417b6 100644 --- a/netbox/circuits/views.py +++ b/netbox/circuits/views.py @@ -23,8 +23,8 @@ from .models import Circuit, CircuitTermination, CircuitType, Provider class ProviderListView(PermissionRequiredMixin, ObjectListView): permission_required = 'circuits.view_provider' queryset = Provider.objects.annotate(count_circuits=Count('circuits')) - filter = filters.ProviderFilterSet - filter_form = forms.ProviderFilterForm + filterset = filters.ProviderFilterSet + filterset_form = forms.ProviderFilterForm table = tables.ProviderDetailTable template_name = 'circuits/provider_list.html' @@ -73,7 +73,7 @@ class ProviderBulkImportView(PermissionRequiredMixin, BulkImportView): class ProviderBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'circuits.change_provider' queryset = Provider.objects.all() - filter = filters.ProviderFilterSet + filterset = filters.ProviderFilterSet table = tables.ProviderTable form = forms.ProviderBulkEditForm default_return_url = 'circuits:provider_list' @@ -82,7 +82,7 @@ class ProviderBulkEditView(PermissionRequiredMixin, BulkEditView): class ProviderBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'circuits.delete_provider' queryset = Provider.objects.all() - filter = filters.ProviderFilterSet + filterset = filters.ProviderFilterSet table = tables.ProviderTable default_return_url = 'circuits:provider_list' @@ -136,8 +136,8 @@ class CircuitListView(PermissionRequiredMixin, ObjectListView): a_side=Subquery(_terminations.filter(term_side='A').values('site__name')[:1]), z_side=Subquery(_terminations.filter(term_side='Z').values('site__name')[:1]), ) - filter = filters.CircuitFilterSet - filter_form = forms.CircuitFilterForm + filterset = filters.CircuitFilterSet + filterset_form = forms.CircuitFilterForm table = tables.CircuitTable template_name = 'circuits/circuit_list.html' @@ -194,7 +194,7 @@ class CircuitBulkImportView(PermissionRequiredMixin, BulkImportView): class CircuitBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'circuits.change_circuit' queryset = Circuit.objects.prefetch_related('provider', 'type', 'tenant').prefetch_related('terminations__site') - filter = filters.CircuitFilterSet + filterset = filters.CircuitFilterSet table = tables.CircuitTable form = forms.CircuitBulkEditForm default_return_url = 'circuits:circuit_list' @@ -203,7 +203,7 @@ class CircuitBulkEditView(PermissionRequiredMixin, BulkEditView): class CircuitBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'circuits.delete_circuit' queryset = Circuit.objects.prefetch_related('provider', 'type', 'tenant').prefetch_related('terminations__site') - filter = filters.CircuitFilterSet + filterset = filters.CircuitFilterSet table = tables.CircuitTable default_return_url = 'circuits:circuit_list' diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index ad267fb6a..779633ef8 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -148,8 +148,8 @@ class RegionListView(PermissionRequiredMixin, ObjectListView): 'site_count', cumulative=True ) - filter = filters.RegionFilterSet - filter_form = forms.RegionFilterForm + filterset = filters.RegionFilterSet + filterset_form = forms.RegionFilterForm table = tables.RegionTable template_name = 'dcim/region_list.html' @@ -175,7 +175,7 @@ class RegionBulkImportView(PermissionRequiredMixin, BulkImportView): class RegionBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'dcim.delete_region' queryset = Region.objects.all() - filter = filters.RegionFilterSet + filterset = filters.RegionFilterSet table = tables.RegionTable default_return_url = 'dcim:region_list' @@ -187,8 +187,8 @@ class RegionBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class SiteListView(PermissionRequiredMixin, ObjectListView): permission_required = 'dcim.view_site' queryset = Site.objects.prefetch_related('region', 'tenant') - filter = filters.SiteFilterSet - filter_form = forms.SiteFilterForm + filterset = filters.SiteFilterSet + filterset_form = forms.SiteFilterForm table = tables.SiteTable template_name = 'dcim/site_list.html' @@ -246,7 +246,7 @@ class SiteBulkImportView(PermissionRequiredMixin, BulkImportView): class SiteBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'dcim.change_site' queryset = Site.objects.prefetch_related('region', 'tenant') - filter = filters.SiteFilterSet + filterset = filters.SiteFilterSet table = tables.SiteTable form = forms.SiteBulkEditForm default_return_url = 'dcim:site_list' @@ -255,7 +255,7 @@ class SiteBulkEditView(PermissionRequiredMixin, BulkEditView): class SiteBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'dcim.delete_site' queryset = Site.objects.prefetch_related('region', 'tenant') - filter = filters.SiteFilterSet + filterset = filters.SiteFilterSet table = tables.SiteTable default_return_url = 'dcim:site_list' @@ -267,8 +267,8 @@ class SiteBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class RackGroupListView(PermissionRequiredMixin, ObjectListView): permission_required = 'dcim.view_rackgroup' queryset = RackGroup.objects.prefetch_related('site').annotate(rack_count=Count('racks')) - filter = filters.RackGroupFilterSet - filter_form = forms.RackGroupFilterForm + filterset = filters.RackGroupFilterSet + filterset_form = forms.RackGroupFilterForm table = tables.RackGroupTable template_name = 'dcim/rackgroup_list.html' @@ -294,7 +294,7 @@ class RackGroupBulkImportView(PermissionRequiredMixin, BulkImportView): class RackGroupBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'dcim.delete_rackgroup' queryset = RackGroup.objects.prefetch_related('site').annotate(rack_count=Count('racks')) - filter = filters.RackGroupFilterSet + filterset = filters.RackGroupFilterSet table = tables.RackGroupTable default_return_url = 'dcim:rackgroup_list' @@ -346,8 +346,8 @@ class RackListView(PermissionRequiredMixin, ObjectListView): ).annotate( device_count=Count('devices') ) - filter = filters.RackFilterSet - filter_form = forms.RackFilterForm + filterset = filters.RackFilterSet + filterset_form = forms.RackFilterForm table = tables.RackDetailTable template_name = 'dcim/rack_list.html' @@ -450,7 +450,7 @@ class RackBulkImportView(PermissionRequiredMixin, BulkImportView): class RackBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'dcim.change_rack' queryset = Rack.objects.prefetch_related('site', 'group', 'tenant', 'role') - filter = filters.RackFilterSet + filterset = filters.RackFilterSet table = tables.RackTable form = forms.RackBulkEditForm default_return_url = 'dcim:rack_list' @@ -459,7 +459,7 @@ class RackBulkEditView(PermissionRequiredMixin, BulkEditView): class RackBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'dcim.delete_rack' queryset = Rack.objects.prefetch_related('site', 'group', 'tenant', 'role') - filter = filters.RackFilterSet + filterset = filters.RackFilterSet table = tables.RackTable default_return_url = 'dcim:rack_list' @@ -471,8 +471,8 @@ class RackBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class RackReservationListView(PermissionRequiredMixin, ObjectListView): permission_required = 'dcim.view_rackreservation' queryset = RackReservation.objects.prefetch_related('rack__site') - filter = filters.RackReservationFilterSet - filter_form = forms.RackReservationFilterForm + filterset = filters.RackReservationFilterSet + filterset_form = forms.RackReservationFilterForm table = tables.RackReservationTable template_name = 'dcim/rackreservation_list.html' @@ -507,7 +507,7 @@ class RackReservationDeleteView(PermissionRequiredMixin, ObjectDeleteView): class RackReservationBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'dcim.change_rackreservation' queryset = RackReservation.objects.prefetch_related('rack', 'user') - filter = filters.RackReservationFilterSet + filterset = filters.RackReservationFilterSet table = tables.RackReservationTable form = forms.RackReservationBulkEditForm default_return_url = 'dcim:rackreservation_list' @@ -516,7 +516,7 @@ class RackReservationBulkEditView(PermissionRequiredMixin, BulkEditView): class RackReservationBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'dcim.delete_rackreservation' queryset = RackReservation.objects.prefetch_related('rack', 'user') - filter = filters.RackReservationFilterSet + filterset = filters.RackReservationFilterSet table = tables.RackReservationTable default_return_url = 'dcim:rackreservation_list' @@ -568,8 +568,8 @@ class ManufacturerBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class DeviceTypeListView(PermissionRequiredMixin, ObjectListView): permission_required = 'dcim.view_devicetype' queryset = DeviceType.objects.prefetch_related('manufacturer').annotate(instance_count=Count('instances')) - filter = filters.DeviceTypeFilterSet - filter_form = forms.DeviceTypeFilterForm + filterset = filters.DeviceTypeFilterSet + filterset_form = forms.DeviceTypeFilterForm table = tables.DeviceTypeTable template_name = 'dcim/devicetype_list.html' @@ -685,7 +685,7 @@ class DeviceTypeImportView(PermissionRequiredMixin, ObjectImportView): class DeviceTypeBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'dcim.change_devicetype' queryset = DeviceType.objects.prefetch_related('manufacturer').annotate(instance_count=Count('instances')) - filter = filters.DeviceTypeFilterSet + filterset = filters.DeviceTypeFilterSet table = tables.DeviceTypeTable form = forms.DeviceTypeBulkEditForm default_return_url = 'dcim:devicetype_list' @@ -694,7 +694,7 @@ class DeviceTypeBulkEditView(PermissionRequiredMixin, BulkEditView): class DeviceTypeBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'dcim.delete_devicetype' queryset = DeviceType.objects.prefetch_related('manufacturer').annotate(instance_count=Count('instances')) - filter = filters.DeviceTypeFilterSet + filterset = filters.DeviceTypeFilterSet table = tables.DeviceTypeTable default_return_url = 'dcim:devicetype_list' @@ -976,8 +976,8 @@ class DeviceListView(PermissionRequiredMixin, ObjectListView): queryset = Device.objects.prefetch_related( 'device_type__manufacturer', 'device_role', 'tenant', 'site', 'rack', 'primary_ip4', 'primary_ip6' ) - filter = filters.DeviceFilterSet - filter_form = forms.DeviceFilterForm + filterset = filters.DeviceFilterSet + filterset_form = forms.DeviceFilterForm table = tables.DeviceDetailTable template_name = 'dcim/device_list.html' @@ -1176,7 +1176,7 @@ class ChildDeviceBulkImportView(PermissionRequiredMixin, BulkImportView): class DeviceBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'dcim.change_device' queryset = Device.objects.prefetch_related('tenant', 'site', 'rack', 'device_role', 'device_type__manufacturer') - filter = filters.DeviceFilterSet + filterset = filters.DeviceFilterSet table = tables.DeviceTable form = forms.DeviceBulkEditForm default_return_url = 'dcim:device_list' @@ -1185,7 +1185,7 @@ class DeviceBulkEditView(PermissionRequiredMixin, BulkEditView): class DeviceBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'dcim.delete_device' queryset = Device.objects.prefetch_related('tenant', 'site', 'rack', 'device_role', 'device_type__manufacturer') - filter = filters.DeviceFilterSet + filterset = filters.DeviceFilterSet table = tables.DeviceTable default_return_url = 'dcim:device_list' @@ -1197,8 +1197,8 @@ class DeviceBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class ConsolePortListView(PermissionRequiredMixin, ObjectListView): permission_required = 'dcim.view_consoleport' queryset = ConsolePort.objects.prefetch_related('device', 'device__tenant', 'device__site', 'cable') - filter = filters.ConsolePortFilterSet - filter_form = forms.ConsolePortFilterForm + filterset = filters.ConsolePortFilterSet + filterset_form = forms.ConsolePortFilterForm table = tables.ConsolePortDetailTable template_name = 'dcim/device_component_list.html' @@ -1245,8 +1245,8 @@ class ConsolePortBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class ConsoleServerPortListView(PermissionRequiredMixin, ObjectListView): permission_required = 'dcim.view_consoleserverport' queryset = ConsoleServerPort.objects.prefetch_related('device', 'device__tenant', 'device__site', 'cable') - filter = filters.ConsoleServerPortFilterSet - filter_form = forms.ConsoleServerPortFilterForm + filterset = filters.ConsoleServerPortFilterSet + filterset_form = forms.ConsoleServerPortFilterForm table = tables.ConsoleServerPortDetailTable template_name = 'dcim/device_component_list.html' @@ -1313,8 +1313,8 @@ class ConsoleServerPortBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class PowerPortListView(PermissionRequiredMixin, ObjectListView): permission_required = 'dcim.view_powerport' queryset = PowerPort.objects.prefetch_related('device', 'device__tenant', 'device__site', 'cable') - filter = filters.PowerPortFilterSet - filter_form = forms.PowerPortFilterForm + filterset = filters.PowerPortFilterSet + filterset_form = forms.PowerPortFilterForm table = tables.PowerPortDetailTable template_name = 'dcim/device_component_list.html' @@ -1361,8 +1361,8 @@ class PowerPortBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class PowerOutletListView(PermissionRequiredMixin, ObjectListView): permission_required = 'dcim.view_poweroutlet' queryset = PowerOutlet.objects.prefetch_related('device', 'device__tenant', 'device__site', 'cable') - filter = filters.PowerOutletFilterSet - filter_form = forms.PowerOutletFilterForm + filterset = filters.PowerOutletFilterSet + filterset_form = forms.PowerOutletFilterForm table = tables.PowerOutletDetailTable template_name = 'dcim/device_component_list.html' @@ -1429,8 +1429,8 @@ class PowerOutletBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class InterfaceListView(PermissionRequiredMixin, ObjectListView): permission_required = 'dcim.view_interface' queryset = Interface.objects.prefetch_related('device', 'device__tenant', 'device__site', 'cable') - filter = filters.InterfaceFilterSet - filter_form = forms.InterfaceFilterForm + filterset = filters.InterfaceFilterSet + filterset_form = forms.InterfaceFilterForm table = tables.InterfaceDetailTable template_name = 'dcim/device_component_list.html' @@ -1534,8 +1534,8 @@ class InterfaceBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class FrontPortListView(PermissionRequiredMixin, ObjectListView): permission_required = 'dcim.view_frontport' queryset = FrontPort.objects.prefetch_related('device', 'device__tenant', 'device__site', 'cable') - filter = filters.FrontPortFilterSet - filter_form = forms.FrontPortFilterForm + filterset = filters.FrontPortFilterSet + filterset_form = forms.FrontPortFilterForm table = tables.FrontPortDetailTable template_name = 'dcim/device_component_list.html' @@ -1602,8 +1602,8 @@ class FrontPortBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class RearPortListView(PermissionRequiredMixin, ObjectListView): permission_required = 'dcim.view_rearport' queryset = RearPort.objects.prefetch_related('device', 'device__tenant', 'device__site', 'cable') - filter = filters.RearPortFilterSet - filter_form = forms.RearPortFilterForm + filterset = filters.RearPortFilterSet + filterset_form = forms.RearPortFilterForm table = tables.RearPortDetailTable template_name = 'dcim/device_component_list.html' @@ -1672,8 +1672,8 @@ class DeviceBayListView(PermissionRequiredMixin, ObjectListView): queryset = DeviceBay.objects.prefetch_related( 'device', 'device__site', 'installed_device', 'installed_device__site' ) - filter = filters.DeviceBayFilterSet - filter_form = forms.DeviceBayFilterForm + filterset = filters.DeviceBayFilterSet + filterset_form = forms.DeviceBayFilterForm table = tables.DeviceBayDetailTable template_name = 'dcim/device_component_list.html' @@ -1799,7 +1799,7 @@ class DeviceBulkAddConsolePortView(PermissionRequiredMixin, BulkComponentCreateV form = forms.DeviceBulkAddComponentForm model = ConsolePort model_form = forms.ConsolePortForm - filter = filters.DeviceFilterSet + filterset = filters.DeviceFilterSet table = tables.DeviceTable default_return_url = 'dcim:device_list' @@ -1811,7 +1811,7 @@ class DeviceBulkAddConsoleServerPortView(PermissionRequiredMixin, BulkComponentC form = forms.DeviceBulkAddComponentForm model = ConsoleServerPort model_form = forms.ConsoleServerPortForm - filter = filters.DeviceFilterSet + filterset = filters.DeviceFilterSet table = tables.DeviceTable default_return_url = 'dcim:device_list' @@ -1823,7 +1823,7 @@ class DeviceBulkAddPowerPortView(PermissionRequiredMixin, BulkComponentCreateVie form = forms.DeviceBulkAddComponentForm model = PowerPort model_form = forms.PowerPortForm - filter = filters.DeviceFilterSet + filterset = filters.DeviceFilterSet table = tables.DeviceTable default_return_url = 'dcim:device_list' @@ -1835,7 +1835,7 @@ class DeviceBulkAddPowerOutletView(PermissionRequiredMixin, BulkComponentCreateV form = forms.DeviceBulkAddComponentForm model = PowerOutlet model_form = forms.PowerOutletForm - filter = filters.DeviceFilterSet + filterset = filters.DeviceFilterSet table = tables.DeviceTable default_return_url = 'dcim:device_list' @@ -1847,7 +1847,7 @@ class DeviceBulkAddInterfaceView(PermissionRequiredMixin, BulkComponentCreateVie form = forms.DeviceBulkAddInterfaceForm model = Interface model_form = forms.InterfaceForm - filter = filters.DeviceFilterSet + filterset = filters.DeviceFilterSet table = tables.DeviceTable default_return_url = 'dcim:device_list' @@ -1859,7 +1859,7 @@ class DeviceBulkAddDeviceBayView(PermissionRequiredMixin, BulkComponentCreateVie form = forms.DeviceBulkAddComponentForm model = DeviceBay model_form = forms.DeviceBayForm - filter = filters.DeviceFilterSet + filterset = filters.DeviceFilterSet table = tables.DeviceTable default_return_url = 'dcim:device_list' @@ -1873,8 +1873,8 @@ class CableListView(PermissionRequiredMixin, ObjectListView): queryset = Cable.objects.prefetch_related( 'termination_a', 'termination_b' ) - filter = filters.CableFilterSet - filter_form = forms.CableFilterForm + filterset = filters.CableFilterSet + filterset_form = forms.CableFilterForm table = tables.CableTable template_name = 'dcim/cable_list.html' @@ -2010,7 +2010,7 @@ class CableBulkImportView(PermissionRequiredMixin, BulkImportView): class CableBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'dcim.change_cable' queryset = Cable.objects.prefetch_related('termination_a', 'termination_b') - filter = filters.CableFilterSet + filterset = filters.CableFilterSet table = tables.CableTable form = forms.CableBulkEditForm default_return_url = 'dcim:cable_list' @@ -2019,7 +2019,7 @@ class CableBulkEditView(PermissionRequiredMixin, BulkEditView): class CableBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'dcim.delete_cable' queryset = Cable.objects.prefetch_related('termination_a', 'termination_b') - filter = filters.CableFilterSet + filterset = filters.CableFilterSet table = tables.CableTable default_return_url = 'dcim:cable_list' @@ -2037,8 +2037,8 @@ class ConsoleConnectionsListView(PermissionRequiredMixin, ObjectListView): ).order_by( 'cable', 'connected_endpoint__device__name', 'connected_endpoint__name' ) - filter = filters.ConsoleConnectionFilterSet - filter_form = forms.ConsoleConnectionFilterForm + filterset = filters.ConsoleConnectionFilterSet + filterset_form = forms.ConsoleConnectionFilterForm table = tables.ConsoleConnectionTable template_name = 'dcim/console_connections_list.html' @@ -2068,8 +2068,8 @@ class PowerConnectionsListView(PermissionRequiredMixin, ObjectListView): ).order_by( 'cable', '_connected_poweroutlet__device__name', '_connected_poweroutlet__name' ) - filter = filters.PowerConnectionFilterSet - filter_form = forms.PowerConnectionFilterForm + filterset = filters.PowerConnectionFilterSet + filterset_form = forms.PowerConnectionFilterForm table = tables.PowerConnectionTable template_name = 'dcim/power_connections_list.html' @@ -2101,8 +2101,8 @@ class InterfaceConnectionsListView(PermissionRequiredMixin, ObjectListView): ).order_by( 'device' ) - filter = filters.InterfaceConnectionFilterSet - filter_form = forms.InterfaceConnectionFilterForm + filterset = filters.InterfaceConnectionFilterSet + filterset_form = forms.InterfaceConnectionFilterForm table = tables.InterfaceConnectionTable template_name = 'dcim/interface_connections_list.html' @@ -2136,8 +2136,8 @@ class InterfaceConnectionsListView(PermissionRequiredMixin, ObjectListView): class InventoryItemListView(PermissionRequiredMixin, ObjectListView): permission_required = 'dcim.view_inventoryitem' queryset = InventoryItem.objects.prefetch_related('device', 'manufacturer') - filter = filters.InventoryItemFilterSet - filter_form = forms.InventoryItemFilterForm + filterset = filters.InventoryItemFilterSet + filterset_form = forms.InventoryItemFilterForm table = tables.InventoryItemTable template_name = 'dcim/inventoryitem_list.html' @@ -2171,7 +2171,7 @@ class InventoryItemBulkImportView(PermissionRequiredMixin, BulkImportView): class InventoryItemBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'dcim.change_inventoryitem' queryset = InventoryItem.objects.prefetch_related('device', 'manufacturer') - filter = filters.InventoryItemFilterSet + filterset = filters.InventoryItemFilterSet table = tables.InventoryItemTable form = forms.InventoryItemBulkEditForm default_return_url = 'dcim:inventoryitem_list' @@ -2193,8 +2193,8 @@ class VirtualChassisListView(PermissionRequiredMixin, ObjectListView): permission_required = 'dcim.view_virtualchassis' queryset = VirtualChassis.objects.prefetch_related('master').annotate(member_count=Count('members')) table = tables.VirtualChassisTable - filter = filters.VirtualChassisFilterSet - filter_form = forms.VirtualChassisFilterForm + filterset = filters.VirtualChassisFilterSet + filterset_form = forms.VirtualChassisFilterForm template_name = 'dcim/virtualchassis_list.html' @@ -2436,8 +2436,8 @@ class PowerPanelListView(PermissionRequiredMixin, ObjectListView): ).annotate( powerfeed_count=Count('powerfeeds') ) - filter = filters.PowerPanelFilterSet - filter_form = forms.PowerPanelFilterForm + filterset = filters.PowerPanelFilterSet + filterset_form = forms.PowerPanelFilterForm table = tables.PowerPanelTable template_name = 'dcim/powerpanel_list.html' @@ -2491,7 +2491,7 @@ class PowerPanelBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): ).annotate( rack_count=Count('powerfeeds') ) - filter = filters.PowerPanelFilterSet + filterset = filters.PowerPanelFilterSet table = tables.PowerPanelTable default_return_url = 'dcim:powerpanel_list' @@ -2505,8 +2505,8 @@ class PowerFeedListView(PermissionRequiredMixin, ObjectListView): queryset = PowerFeed.objects.prefetch_related( 'power_panel', 'rack' ) - filter = filters.PowerFeedFilterSet - filter_form = forms.PowerFeedFilterForm + filterset = filters.PowerFeedFilterSet + filterset_form = forms.PowerFeedFilterForm table = tables.PowerFeedTable template_name = 'dcim/powerfeed_list.html' @@ -2551,7 +2551,7 @@ class PowerFeedBulkImportView(PermissionRequiredMixin, BulkImportView): class PowerFeedBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'dcim.change_powerfeed' queryset = PowerFeed.objects.prefetch_related('power_panel', 'rack') - filter = filters.PowerFeedFilterSet + filterset = filters.PowerFeedFilterSet table = tables.PowerFeedTable form = forms.PowerFeedBulkEditForm default_return_url = 'dcim:powerfeed_list' @@ -2560,6 +2560,6 @@ class PowerFeedBulkEditView(PermissionRequiredMixin, BulkEditView): class PowerFeedBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'dcim.delete_powerfeed' queryset = PowerFeed.objects.prefetch_related('power_panel', 'rack') - filter = filters.PowerFeedFilterSet + filterset = filters.PowerFeedFilterSet table = tables.PowerFeedTable default_return_url = 'dcim:powerfeed_list' diff --git a/netbox/extras/views.py b/netbox/extras/views.py index 38d8f7342..2fce98cc4 100644 --- a/netbox/extras/views.py +++ b/netbox/extras/views.py @@ -31,8 +31,8 @@ class TagListView(PermissionRequiredMixin, ObjectListView): ).order_by( 'name' ) - filter = filters.TagFilterSet - filter_form = forms.TagFilterForm + filterset = filters.TagFilterSet + filterset_form = forms.TagFilterForm table = TagTable template_name = 'extras/tag_list.html' @@ -108,8 +108,8 @@ class TagBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class ConfigContextListView(PermissionRequiredMixin, ObjectListView): permission_required = 'extras.view_configcontext' queryset = ConfigContext.objects.all() - filter = filters.ConfigContextFilterSet - filter_form = forms.ConfigContextFilterForm + filterset = filters.ConfigContextFilterSet + filterset_form = forms.ConfigContextFilterForm table = ConfigContextTable template_name = 'extras/configcontext_list.html' @@ -141,7 +141,7 @@ class ConfigContextEditView(ConfigContextCreateView): class ConfigContextBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'extras.change_configcontext' queryset = ConfigContext.objects.all() - filter = filters.ConfigContextFilterSet + filterset = filters.ConfigContextFilterSet table = ConfigContextTable form = forms.ConfigContextBulkEditForm default_return_url = 'extras:configcontext_list' @@ -187,8 +187,8 @@ class ObjectConfigContextView(View): class ObjectChangeListView(PermissionRequiredMixin, ObjectListView): permission_required = 'extras.view_objectchange' queryset = ObjectChange.objects.prefetch_related('user', 'changed_object_type') - filter = filters.ObjectChangeFilterSet - filter_form = forms.ObjectChangeFilterForm + filterset = filters.ObjectChangeFilterSet + filterset_form = forms.ObjectChangeFilterForm table = ObjectChangeTable template_name = 'extras/objectchange_list.html' diff --git a/netbox/ipam/views.py b/netbox/ipam/views.py index 0bd5026cf..de0c33aee 100644 --- a/netbox/ipam/views.py +++ b/netbox/ipam/views.py @@ -117,8 +117,8 @@ def add_available_vlans(vlan_group, vlans): class VRFListView(PermissionRequiredMixin, ObjectListView): permission_required = 'ipam.view_vrf' queryset = VRF.objects.prefetch_related('tenant') - filter = filters.VRFFilterSet - filter_form = forms.VRFFilterForm + filterset = filters.VRFFilterSet + filterset_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.VRFFilterSet + filterset = 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.VRFFilterSet + filterset = filters.VRFFilterSet table = tables.VRFTable default_return_url = 'ipam:vrf_list' @@ -186,8 +186,8 @@ class VRFBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class RIRListView(PermissionRequiredMixin, ObjectListView): permission_required = 'ipam.view_rir' queryset = RIR.objects.annotate(aggregate_count=Count('aggregates')) - filter = filters.RIRFilterSet - filter_form = forms.RIRFilterForm + filterset = filters.RIRFilterSet + filterset_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.RIRFilterSet + filterset = filters.RIRFilterSet table = tables.RIRTable default_return_url = 'ipam:rir_list' @@ -296,8 +296,8 @@ class AggregateListView(PermissionRequiredMixin, ObjectListView): child_count=RawSQL('SELECT COUNT(*) FROM ipam_prefix WHERE ipam_prefix.prefix <<= ipam_aggregate.prefix', ()) ) - filter = filters.AggregateFilterSet - filter_form = forms.AggregateFilterForm + filterset = filters.AggregateFilterSet + filterset_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.AggregateFilterSet + filterset = 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.AggregateFilterSet + filterset = filters.AggregateFilterSet table = tables.AggregateTable default_return_url = 'ipam:aggregate_list' @@ -448,8 +448,8 @@ 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.PrefixFilterSet - filter_form = forms.PrefixFilterForm + filterset = filters.PrefixFilterSet + filterset_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.PrefixFilterSet + filterset = 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.PrefixFilterSet + filterset = filters.PrefixFilterSet table = tables.PrefixTable default_return_url = 'ipam:prefix_list' @@ -643,8 +643,8 @@ class IPAddressListView(PermissionRequiredMixin, ObjectListView): queryset = IPAddress.objects.prefetch_related( 'vrf__tenant', 'tenant', 'nat_inside', 'interface__device', 'interface__virtual_machine' ) - filter = filters.IPAddressFilterSet - filter_form = forms.IPAddressFilterForm + filterset = filters.IPAddressFilterSet + filterset_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.IPAddressFilterSet + filterset = 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.IPAddressFilterSet + filterset = filters.IPAddressFilterSet table = tables.IPAddressTable default_return_url = 'ipam:ipaddress_list' @@ -817,8 +817,8 @@ 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.VLANGroupFilterSet - filter_form = forms.VLANGroupFilterForm + filterset = filters.VLANGroupFilterSet + filterset_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.VLANGroupFilterSet + filterset = filters.VLANGroupFilterSet table = tables.VLANGroupTable default_return_url = 'ipam:vlangroup_list' @@ -893,8 +893,8 @@ 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.VLANFilterSet - filter_form = forms.VLANFilterForm + filterset = filters.VLANFilterSet + filterset_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.VLANFilterSet + filterset = 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.VLANFilterSet + filterset = filters.VLANFilterSet table = tables.VLANTable default_return_url = 'ipam:vlan_list' @@ -989,8 +989,8 @@ class VLANBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class ServiceListView(PermissionRequiredMixin, ObjectListView): permission_required = 'ipam.view_service' queryset = Service.objects.prefetch_related('device', 'virtual_machine') - filter = filters.ServiceFilterSet - filter_form = forms.ServiceFilterForm + filterset = filters.ServiceFilterSet + filterset_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.ServiceFilterSet + filterset = 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.ServiceFilterSet + filterset = filters.ServiceFilterSet table = tables.ServiceTable default_return_url = 'ipam:service_list' diff --git a/netbox/secrets/views.py b/netbox/secrets/views.py index e3267f647..288edaa6f 100644 --- a/netbox/secrets/views.py +++ b/netbox/secrets/views.py @@ -70,8 +70,8 @@ class SecretRoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class SecretListView(PermissionRequiredMixin, ObjectListView): permission_required = 'secrets.view_secret' queryset = Secret.objects.prefetch_related('role', 'device') - filter = filters.SecretFilterSet - filter_form = forms.SecretFilterForm + filterset = filters.SecretFilterSet + filterset_form = forms.SecretFilterForm table = tables.SecretTable template_name = 'secrets/secret_list.html' @@ -248,7 +248,7 @@ class SecretBulkImportView(BulkImportView): class SecretBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'secrets.change_secret' queryset = Secret.objects.prefetch_related('role', 'device') - filter = filters.SecretFilterSet + filterset = filters.SecretFilterSet table = tables.SecretTable form = forms.SecretBulkEditForm default_return_url = 'secrets:secret_list' @@ -257,6 +257,6 @@ class SecretBulkEditView(PermissionRequiredMixin, BulkEditView): class SecretBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'secrets.delete_secret' queryset = Secret.objects.prefetch_related('role', 'device') - filter = filters.SecretFilterSet + filterset = filters.SecretFilterSet table = tables.SecretTable default_return_url = 'secrets:secret_list' diff --git a/netbox/tenancy/views.py b/netbox/tenancy/views.py index 19c34c38d..a53458694 100644 --- a/netbox/tenancy/views.py +++ b/netbox/tenancy/views.py @@ -57,8 +57,8 @@ class TenantGroupBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class TenantListView(PermissionRequiredMixin, ObjectListView): permission_required = 'tenancy.view_tenant' queryset = Tenant.objects.prefetch_related('group') - filter = filters.TenantFilterSet - filter_form = forms.TenantFilterForm + filterset = filters.TenantFilterSet + filterset_form = forms.TenantFilterForm table = tables.TenantTable template_name = 'tenancy/tenant_list.html' @@ -117,7 +117,7 @@ class TenantBulkImportView(PermissionRequiredMixin, BulkImportView): class TenantBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'tenancy.change_tenant' queryset = Tenant.objects.prefetch_related('group') - filter = filters.TenantFilterSet + filterset = filters.TenantFilterSet table = tables.TenantTable form = forms.TenantBulkEditForm default_return_url = 'tenancy:tenant_list' @@ -126,6 +126,6 @@ class TenantBulkEditView(PermissionRequiredMixin, BulkEditView): class TenantBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'tenancy.delete_tenant' queryset = Tenant.objects.prefetch_related('group') - filter = filters.TenantFilterSet + filterset = filters.TenantFilterSet table = tables.TenantTable default_return_url = 'tenancy:tenant_list' diff --git a/netbox/utilities/views.py b/netbox/utilities/views.py index 90e28e718..0b4dc6f35 100644 --- a/netbox/utilities/views.py +++ b/netbox/utilities/views.py @@ -70,8 +70,8 @@ class ObjectListView(View): template_name: The name of the template """ queryset = None - filter = None - filter_form = None + filterset = None + filterset_form = None table = None template_name = None @@ -97,8 +97,8 @@ class ObjectListView(View): model = self.queryset.model content_type = ContentType.objects.get_for_model(model) - if self.filter: - self.queryset = self.filter(request.GET, self.queryset).qs + if self.filterset: + self.queryset = self.filterset(request.GET, self.queryset).qs # If this type of object has one or more custom fields, prefetch any relevant custom field values custom_fields = CustomField.objects.filter( @@ -161,7 +161,7 @@ class ObjectListView(View): 'content_type': content_type, 'table': table, 'permissions': permissions, - 'filter_form': self.filter_form(request.GET, label_suffix='') if self.filter_form else None, + 'filter_form': self.filterset_form(request.GET, label_suffix='') if self.filterset_form else None, 'tags': tags, } context.update(self.extra_context()) @@ -598,7 +598,7 @@ class BulkEditView(GetReturnURLMixin, View): """ queryset = None parent_model = None - filter = None + filterset = None table = None form = None template_name = 'utilities/obj_bulk_edit.html' @@ -617,8 +617,8 @@ class BulkEditView(GetReturnURLMixin, View): parent_obj = None # Are we editing *all* objects in the queryset or just a selected subset? - if request.POST.get('_all') and self.filter is not None: - pk_list = [obj.pk for obj in self.filter(request.GET, model.objects.only('pk')).qs] + if request.POST.get('_all') and self.filterset is not None: + pk_list = [obj.pk for obj in self.filterset(request.GET, model.objects.only('pk')).qs] else: pk_list = [int(pk) for pk in request.POST.getlist('pk')] @@ -719,7 +719,7 @@ class BulkDeleteView(GetReturnURLMixin, View): """ queryset = None parent_model = None - filter = None + filterset = None table = None form = None template_name = 'utilities/obj_bulk_delete.html' @@ -739,8 +739,8 @@ class BulkDeleteView(GetReturnURLMixin, View): # Are we deleting *all* objects in the queryset or just a selected subset? if request.POST.get('_all'): - if self.filter is not None: - pk_list = [obj.pk for obj in self.filter(request.GET, model.objects.only('pk')).qs] + if self.filterset is not None: + pk_list = [obj.pk for obj in self.filterset(request.GET, model.objects.only('pk')).qs] else: pk_list = model.objects.values_list('pk', flat=True) else: @@ -883,7 +883,7 @@ class BulkComponentCreateView(GetReturnURLMixin, View): form = None model = None model_form = None - filter = None + filterset = None table = None template_name = 'utilities/obj_bulk_add_component.html' @@ -893,8 +893,8 @@ class BulkComponentCreateView(GetReturnURLMixin, View): model_name = self.model._meta.verbose_name_plural # Are we editing *all* objects in the queryset or just a selected subset? - if request.POST.get('_all') and self.filter is not None: - pk_list = [obj.pk for obj in self.filter(request.GET, self.parent_model.objects.only('pk')).qs] + if request.POST.get('_all') and self.filterset is not None: + pk_list = [obj.pk for obj in self.filterset(request.GET, self.parent_model.objects.only('pk')).qs] else: pk_list = [int(pk) for pk in request.POST.getlist('pk')] diff --git a/netbox/virtualization/views.py b/netbox/virtualization/views.py index 2115a4a82..646fb000d 100644 --- a/netbox/virtualization/views.py +++ b/netbox/virtualization/views.py @@ -98,8 +98,8 @@ class ClusterListView(PermissionRequiredMixin, ObjectListView): permission_required = 'virtualization.view_cluster' queryset = Cluster.objects.prefetch_related('type', 'group', 'site', 'tenant') table = tables.ClusterTable - filter = filters.ClusterFilterSet - filter_form = forms.ClusterFilterForm + filterset = filters.ClusterFilterSet + filterset_form = forms.ClusterFilterForm template_name = 'virtualization/cluster_list.html' @@ -149,7 +149,7 @@ class ClusterBulkImportView(PermissionRequiredMixin, BulkImportView): class ClusterBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'virtualization.change_cluster' queryset = Cluster.objects.prefetch_related('type', 'group', 'site') - filter = filters.ClusterFilterSet + filterset = filters.ClusterFilterSet table = tables.ClusterTable form = forms.ClusterBulkEditForm default_return_url = 'virtualization:cluster_list' @@ -158,7 +158,7 @@ class ClusterBulkEditView(PermissionRequiredMixin, BulkEditView): class ClusterBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'virtualization.delete_cluster' queryset = Cluster.objects.prefetch_related('type', 'group', 'site') - filter = filters.ClusterFilterSet + filterset = filters.ClusterFilterSet table = tables.ClusterTable default_return_url = 'virtualization:cluster_list' @@ -254,8 +254,8 @@ class ClusterRemoveDevicesView(PermissionRequiredMixin, View): class VirtualMachineListView(PermissionRequiredMixin, ObjectListView): permission_required = 'virtualization.view_virtualmachine' queryset = VirtualMachine.objects.prefetch_related('cluster', 'tenant', 'role', 'primary_ip4', 'primary_ip6') - filter = filters.VirtualMachineFilterSet - filter_form = forms.VirtualMachineFilterForm + filterset = filters.VirtualMachineFilterSet + filterset_form = forms.VirtualMachineFilterForm table = tables.VirtualMachineDetailTable template_name = 'virtualization/virtualmachine_list.html' @@ -310,7 +310,7 @@ class VirtualMachineBulkImportView(PermissionRequiredMixin, BulkImportView): class VirtualMachineBulkEditView(PermissionRequiredMixin, BulkEditView): permission_required = 'virtualization.change_virtualmachine' queryset = VirtualMachine.objects.prefetch_related('cluster', 'tenant', 'role') - filter = filters.VirtualMachineFilterSet + filterset = filters.VirtualMachineFilterSet table = tables.VirtualMachineTable form = forms.VirtualMachineBulkEditForm default_return_url = 'virtualization:virtualmachine_list' @@ -319,7 +319,7 @@ class VirtualMachineBulkEditView(PermissionRequiredMixin, BulkEditView): class VirtualMachineBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'virtualization.delete_virtualmachine' queryset = VirtualMachine.objects.prefetch_related('cluster', 'tenant', 'role') - filter = filters.VirtualMachineFilterSet + filterset = filters.VirtualMachineFilterSet table = tables.VirtualMachineTable default_return_url = 'virtualization:virtualmachine_list' @@ -376,6 +376,6 @@ class VirtualMachineBulkAddInterfaceView(PermissionRequiredMixin, BulkComponentC form = forms.VirtualMachineBulkAddInterfaceForm model = Interface model_form = forms.InterfaceForm - filter = filters.VirtualMachineFilterSet + filterset = filters.VirtualMachineFilterSet table = tables.VirtualMachineTable default_return_url = 'virtualization:virtualmachine_list' From e3807a89372d816561928a5969e43e8268514984 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 9 Jan 2020 21:02:14 -0500 Subject: [PATCH 09/10] Update filterset naming for global search view --- netbox/netbox/views.py | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/netbox/netbox/views.py b/netbox/netbox/views.py index 83c763a18..fbe70300b 100644 --- a/netbox/netbox/views.py +++ b/netbox/netbox/views.py @@ -42,7 +42,7 @@ SEARCH_TYPES = OrderedDict(( ('provider', { 'permission': 'circuits.view_provider', 'queryset': Provider.objects.all(), - 'filter': ProviderFilterSet, + 'filterset': ProviderFilterSet, 'table': ProviderTable, 'url': 'circuits:provider_list', }), @@ -59,7 +59,7 @@ SEARCH_TYPES = OrderedDict(( CircuitTermination.objects.filter(circuit=OuterRef('pk')).filter(term_side='Z').values('site__name')[:1] ), ), - 'filter': CircuitFilterSet, + 'filterset': CircuitFilterSet, 'table': CircuitTable, 'url': 'circuits:circuit_list', }), @@ -67,28 +67,28 @@ SEARCH_TYPES = OrderedDict(( ('site', { 'permission': 'dcim.view_site', 'queryset': Site.objects.prefetch_related('region', 'tenant'), - 'filter': SiteFilterSet, + 'filterset': SiteFilterSet, 'table': SiteTable, 'url': 'dcim:site_list', }), ('rack', { 'permission': 'dcim.view_rack', 'queryset': Rack.objects.prefetch_related('site', 'group', 'tenant', 'role'), - 'filter': RackFilterSet, + 'filterset': RackFilterSet, 'table': RackTable, 'url': 'dcim:rack_list', }), ('rackgroup', { 'permission': 'dcim.view_rackgroup', 'queryset': RackGroup.objects.prefetch_related('site').annotate(rack_count=Count('racks')), - 'filter': RackGroupFilterSet, + 'filterset': RackGroupFilterSet, 'table': RackGroupTable, 'url': 'dcim:rackgroup_list', }), ('devicetype', { 'permission': 'dcim.view_devicetype', 'queryset': DeviceType.objects.prefetch_related('manufacturer').annotate(instance_count=Count('instances')), - 'filter': DeviceTypeFilterSet, + 'filterset': DeviceTypeFilterSet, 'table': DeviceTypeTable, 'url': 'dcim:devicetype_list', }), @@ -97,28 +97,28 @@ SEARCH_TYPES = OrderedDict(( 'queryset': Device.objects.prefetch_related( 'device_type__manufacturer', 'device_role', 'tenant', 'site', 'rack', 'primary_ip4', 'primary_ip6', ), - 'filter': DeviceFilterSet, + 'filterset': DeviceFilterSet, 'table': DeviceDetailTable, 'url': 'dcim:device_list', }), ('virtualchassis', { 'permission': 'dcim.view_virtualchassis', 'queryset': VirtualChassis.objects.prefetch_related('master').annotate(member_count=Count('members')), - 'filter': VirtualChassisFilterSet, + 'filterset': VirtualChassisFilterSet, 'table': VirtualChassisTable, 'url': 'dcim:virtualchassis_list', }), ('cable', { 'permission': 'dcim.view_cable', 'queryset': Cable.objects.all(), - 'filter': CableFilterSet, + 'filterset': CableFilterSet, 'table': CableTable, 'url': 'dcim:cable_list', }), ('powerfeed', { 'permission': 'dcim.view_powerfeed', 'queryset': PowerFeed.objects.all(), - 'filter': PowerFeedFilterSet, + 'filterset': PowerFeedFilterSet, 'table': PowerFeedTable, 'url': 'dcim:powerfeed_list', }), @@ -126,7 +126,7 @@ SEARCH_TYPES = OrderedDict(( ('cluster', { 'permission': 'virtualization.view_cluster', 'queryset': Cluster.objects.prefetch_related('type', 'group'), - 'filter': ClusterFilterSet, + 'filterset': ClusterFilterSet, 'table': ClusterTable, 'url': 'virtualization:cluster_list', }), @@ -135,7 +135,7 @@ SEARCH_TYPES = OrderedDict(( 'queryset': VirtualMachine.objects.prefetch_related( 'cluster', 'tenant', 'platform', 'primary_ip4', 'primary_ip6', ), - 'filter': VirtualMachineFilterSet, + 'filterset': VirtualMachineFilterSet, 'table': VirtualMachineDetailTable, 'url': 'virtualization:virtualmachine_list', }), @@ -143,35 +143,35 @@ SEARCH_TYPES = OrderedDict(( ('vrf', { 'permission': 'ipam.view_vrf', 'queryset': VRF.objects.prefetch_related('tenant'), - 'filter': VRFFilterSet, + 'filterset': VRFFilterSet, 'table': VRFTable, 'url': 'ipam:vrf_list', }), ('aggregate', { 'permission': 'ipam.view_aggregate', 'queryset': Aggregate.objects.prefetch_related('rir'), - 'filter': AggregateFilterSet, + 'filterset': AggregateFilterSet, 'table': AggregateTable, 'url': 'ipam:aggregate_list', }), ('prefix', { 'permission': 'ipam.view_prefix', 'queryset': Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role'), - 'filter': PrefixFilterSet, + 'filterset': PrefixFilterSet, 'table': PrefixTable, 'url': 'ipam:prefix_list', }), ('ipaddress', { 'permission': 'ipam.view_ipaddress', 'queryset': IPAddress.objects.prefetch_related('vrf__tenant', 'tenant'), - 'filter': IPAddressFilterSet, + 'filterset': IPAddressFilterSet, 'table': IPAddressTable, 'url': 'ipam:ipaddress_list', }), ('vlan', { 'permission': 'ipam.view_vlan', 'queryset': VLAN.objects.prefetch_related('site', 'group', 'tenant', 'role'), - 'filter': VLANFilterSet, + 'filterset': VLANFilterSet, 'table': VLANTable, 'url': 'ipam:vlan_list', }), @@ -179,7 +179,7 @@ SEARCH_TYPES = OrderedDict(( ('secret', { 'permission': 'secrets.view_secret', 'queryset': Secret.objects.prefetch_related('role', 'device'), - 'filter': SecretFilterSet, + 'filterset': SecretFilterSet, 'table': SecretTable, 'url': 'secrets:secret_list', }), @@ -187,7 +187,7 @@ SEARCH_TYPES = OrderedDict(( ('tenant', { 'permission': 'tenancy.view_tenant', 'queryset': Tenant.objects.prefetch_related('group'), - 'filter': TenantFilterSet, + 'filterset': TenantFilterSet, 'table': TenantTable, 'url': 'tenancy:tenant_list', }), @@ -286,12 +286,12 @@ class SearchView(View): for obj_type in obj_types: queryset = SEARCH_TYPES[obj_type]['queryset'] - filter_cls = SEARCH_TYPES[obj_type]['filter'] + filterset = SEARCH_TYPES[obj_type]['filterset'] table = SEARCH_TYPES[obj_type]['table'] url = SEARCH_TYPES[obj_type]['url'] # Construct the results table for this object type - filtered_queryset = filter_cls({'q': form.cleaned_data['q']}, queryset=queryset).qs + filtered_queryset = filterset({'q': form.cleaned_data['q']}, queryset=queryset).qs table = table(filtered_queryset, orderable=False) table.paginate(per_page=SEARCH_MAX_RESULTS) From 528b345f57b2ca21e920030f8d067fbf3a8785ec Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 9 Jan 2020 21:05:38 -0500 Subject: [PATCH 10/10] Move TenancyFilterSet to filters.py --- netbox/circuits/filters.py | 2 +- netbox/dcim/filters.py | 2 +- netbox/ipam/filters.py | 2 +- netbox/tenancy/filters.py | 29 +++++++++++++++++++++++++++++ netbox/tenancy/filtersets.py | 28 ---------------------------- netbox/virtualization/filters.py | 2 +- 6 files changed, 33 insertions(+), 32 deletions(-) delete mode 100644 netbox/tenancy/filtersets.py diff --git a/netbox/circuits/filters.py b/netbox/circuits/filters.py index 9a63a7814..c27ffb8d7 100644 --- a/netbox/circuits/filters.py +++ b/netbox/circuits/filters.py @@ -3,7 +3,7 @@ from django.db.models import Q from dcim.models import Region, Site from extras.filters import CustomFieldFilterSet, CreatedUpdatedFilterSet -from tenancy.filtersets import TenancyFilterSet +from tenancy.filters import TenancyFilterSet from utilities.filters import NameSlugSearchFilterSet, NumericInFilter, TagFilter, TreeNodeMultipleChoiceFilter from .choices import * from .models import Circuit, CircuitTermination, CircuitType, Provider diff --git a/netbox/dcim/filters.py b/netbox/dcim/filters.py index 59beb1a9c..4922cc89c 100644 --- a/netbox/dcim/filters.py +++ b/netbox/dcim/filters.py @@ -3,7 +3,7 @@ from django.contrib.auth.models import User from django.db.models import Q from extras.filters import CustomFieldFilterSet, LocalConfigContextFilterSet, CreatedUpdatedFilterSet -from tenancy.filtersets import TenancyFilterSet +from tenancy.filters import TenancyFilterSet from tenancy.models import Tenant from utilities.constants import COLOR_CHOICES from utilities.filters import ( diff --git a/netbox/ipam/filters.py b/netbox/ipam/filters.py index fff179946..a1a59078e 100644 --- a/netbox/ipam/filters.py +++ b/netbox/ipam/filters.py @@ -6,7 +6,7 @@ from netaddr.core import AddrFormatError from dcim.models import Device, Interface, Region, Site from extras.filters import CustomFieldFilterSet, CreatedUpdatedFilterSet -from tenancy.filtersets import TenancyFilterSet +from tenancy.filters import TenancyFilterSet from utilities.filters import NameSlugSearchFilterSet, NumericInFilter, TagFilter, TreeNodeMultipleChoiceFilter from virtualization.models import VirtualMachine from .choices import * diff --git a/netbox/tenancy/filters.py b/netbox/tenancy/filters.py index 3ab98743f..001cf29e7 100644 --- a/netbox/tenancy/filters.py +++ b/netbox/tenancy/filters.py @@ -7,6 +7,7 @@ from .models import Tenant, TenantGroup __all__ = ( + 'TenancyFilterSet', 'TenantFilterSet', 'TenantGroupFilterSet', ) @@ -53,3 +54,31 @@ class TenantFilterSet(CustomFieldFilterSet, CreatedUpdatedFilterSet): Q(description__icontains=value) | Q(comments__icontains=value) ) + + +class TenancyFilterSet(django_filters.FilterSet): + """ + An inheritable FilterSet for models which support Tenant assignment. + """ + tenant_group_id = django_filters.ModelMultipleChoiceFilter( + field_name='tenant__group__id', + queryset=TenantGroup.objects.all(), + to_field_name='id', + label='Tenant Group (ID)', + ) + tenant_group = django_filters.ModelMultipleChoiceFilter( + field_name='tenant__group__slug', + queryset=TenantGroup.objects.all(), + to_field_name='slug', + label='Tenant Group (slug)', + ) + tenant_id = django_filters.ModelMultipleChoiceFilter( + queryset=Tenant.objects.all(), + label='Tenant (ID)', + ) + tenant = django_filters.ModelMultipleChoiceFilter( + field_name='tenant__slug', + queryset=Tenant.objects.all(), + to_field_name='slug', + label='Tenant (slug)', + ) diff --git a/netbox/tenancy/filtersets.py b/netbox/tenancy/filtersets.py deleted file mode 100644 index eb656a894..000000000 --- a/netbox/tenancy/filtersets.py +++ /dev/null @@ -1,28 +0,0 @@ -import django_filters - -from .models import Tenant, TenantGroup - - -class TenancyFilterSet(django_filters.FilterSet): - tenant_group_id = django_filters.ModelMultipleChoiceFilter( - field_name='tenant__group__id', - queryset=TenantGroup.objects.all(), - to_field_name='id', - label='Tenant Group (ID)', - ) - tenant_group = django_filters.ModelMultipleChoiceFilter( - field_name='tenant__group__slug', - queryset=TenantGroup.objects.all(), - to_field_name='slug', - label='Tenant Group (slug)', - ) - tenant_id = django_filters.ModelMultipleChoiceFilter( - queryset=Tenant.objects.all(), - label='Tenant (ID)', - ) - tenant = django_filters.ModelMultipleChoiceFilter( - field_name='tenant__slug', - queryset=Tenant.objects.all(), - to_field_name='slug', - label='Tenant (slug)', - ) diff --git a/netbox/virtualization/filters.py b/netbox/virtualization/filters.py index 4aa5302c1..b2f24c2fe 100644 --- a/netbox/virtualization/filters.py +++ b/netbox/virtualization/filters.py @@ -3,7 +3,7 @@ from django.db.models import Q from dcim.models import DeviceRole, Interface, Platform, Region, Site from extras.filters import CustomFieldFilterSet, CreatedUpdatedFilterSet -from tenancy.filtersets import TenancyFilterSet +from tenancy.filters import TenancyFilterSet from tenancy.models import Tenant from utilities.filters import ( MultiValueMACAddressFilter, NameSlugSearchFilterSet, NumericInFilter, TagFilter, TreeNodeMultipleChoiceFilter,