feat(views): Add FilterSet support to BulkRenameView

Allow passing a FilterSet to BulkRenameView for consistent behavior with
BulkEditView and BulkDeleteView. Enables the
"Select all N matching query" functionality to expand across the full
queryset. Updates logic to handle PK lists appropriately when editing
all matched objects.

Fixes #20389
This commit is contained in:
Martin Hauser
2025-10-24 14:43:35 +02:00
parent 0cf58e62b2
commit ac7a4ec4a3
12 changed files with 139 additions and 4 deletions

View File

@@ -80,6 +80,7 @@ class ClusterTypeBulkEditView(generic.BulkEditView):
@register_model_view(ClusterType, 'bulk_rename', path='rename', detail=False)
class ClusterTypeBulkRenameView(generic.BulkRenameView):
queryset = ClusterType.objects.all()
filterset = filtersets.ClusterTypeFilterSet
@register_model_view(ClusterType, 'bulk_delete', path='delete', detail=False)
@@ -158,6 +159,7 @@ class ClusterGroupBulkEditView(generic.BulkEditView):
@register_model_view(ClusterGroup, 'bulk_rename', path='rename', detail=False)
class ClusterGroupBulkRenameView(generic.BulkRenameView):
queryset = ClusterGroup.objects.all()
filterset = filtersets.ClusterGroupFilterSet
@register_model_view(ClusterGroup, 'bulk_delete', path='delete', detail=False)
@@ -277,6 +279,7 @@ class ClusterBulkEditView(generic.BulkEditView):
@register_model_view(Cluster, 'bulk_rename', path='rename', detail=False)
class ClusterBulkRenameView(generic.BulkRenameView):
queryset = Cluster.objects.all()
filterset = filtersets.ClusterFilterSet
@register_model_view(Cluster, 'bulk_delete', path='delete', detail=False)
@@ -437,6 +440,7 @@ class VirtualMachineBulkEditView(generic.BulkEditView):
@register_model_view(VirtualMachine, 'bulk_rename', path='rename', detail=False)
class VirtualMachineBulkRenameView(generic.BulkRenameView):
queryset = VirtualMachine.objects.all()
filterset = filtersets.VirtualMachineFilterSet
@register_model_view(VirtualMachine, 'bulk_delete', path='delete', detail=False)
@@ -539,6 +543,7 @@ class VMInterfaceBulkEditView(generic.BulkEditView):
@register_model_view(VMInterface, 'bulk_rename', path='rename', detail=False)
class VMInterfaceBulkRenameView(generic.BulkRenameView):
queryset = VMInterface.objects.all()
filterset = filtersets.VMInterfaceFilterSet
form = forms.VMInterfaceBulkRenameForm
@@ -602,6 +607,7 @@ class VirtualDiskBulkEditView(generic.BulkEditView):
@register_model_view(VirtualDisk, 'bulk_rename', path='rename', detail=False)
class VirtualDiskBulkRenameView(generic.BulkRenameView):
queryset = VirtualDisk.objects.all()
filterset = filtersets.VirtualDiskFilterSet
form = forms.VirtualDiskBulkRenameForm