mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-14 15:52:18 -06:00
* Closes #19231: Add bulk renaming support for all models * Introduce a template filter for getattr() * Extend BulkRenameView to support arbitrary field names * Address bulk renaming support for remaining models * Bulk rename URL resolution should fail silently * Update documentation * Fix bulk button rendering for HTMX requests
This commit is contained in:
@@ -13,7 +13,9 @@ from dcim.tables import DeviceTable
|
||||
from extras.views import ObjectConfigContextView, ObjectRenderConfigView
|
||||
from ipam.models import IPAddress, VLANGroup
|
||||
from ipam.tables import InterfaceVLANTable, VLANTranslationRuleTable
|
||||
from netbox.object_actions import *
|
||||
from netbox.object_actions import (
|
||||
AddObject, BulkDelete, BulkEdit, BulkExport, BulkImport, BulkRename, DeleteObject, EditObject,
|
||||
)
|
||||
from netbox.views import generic
|
||||
from utilities.query import count_related
|
||||
from utilities.query_functions import CollateAsChar
|
||||
@@ -75,6 +77,11 @@ class ClusterTypeBulkEditView(generic.BulkEditView):
|
||||
form = forms.ClusterTypeBulkEditForm
|
||||
|
||||
|
||||
@register_model_view(ClusterType, 'bulk_rename', path='rename', detail=False)
|
||||
class ClusterTypeBulkRenameView(generic.BulkRenameView):
|
||||
queryset = ClusterType.objects.all()
|
||||
|
||||
|
||||
@register_model_view(ClusterType, 'bulk_delete', path='delete', detail=False)
|
||||
class ClusterTypeBulkDeleteView(generic.BulkDeleteView):
|
||||
queryset = ClusterType.objects.annotate(
|
||||
@@ -148,6 +155,11 @@ class ClusterGroupBulkEditView(generic.BulkEditView):
|
||||
form = forms.ClusterGroupBulkEditForm
|
||||
|
||||
|
||||
@register_model_view(ClusterGroup, 'bulk_rename', path='rename', detail=False)
|
||||
class ClusterGroupBulkRenameView(generic.BulkRenameView):
|
||||
queryset = ClusterGroup.objects.all()
|
||||
|
||||
|
||||
@register_model_view(ClusterGroup, 'bulk_delete', path='delete', detail=False)
|
||||
class ClusterGroupBulkDeleteView(generic.BulkDeleteView):
|
||||
queryset = ClusterGroup.objects.annotate(
|
||||
@@ -262,6 +274,11 @@ class ClusterBulkEditView(generic.BulkEditView):
|
||||
form = forms.ClusterBulkEditForm
|
||||
|
||||
|
||||
@register_model_view(Cluster, 'bulk_rename', path='rename', detail=False)
|
||||
class ClusterBulkRenameView(generic.BulkRenameView):
|
||||
queryset = Cluster.objects.all()
|
||||
|
||||
|
||||
@register_model_view(Cluster, 'bulk_delete', path='delete', detail=False)
|
||||
class ClusterBulkDeleteView(generic.BulkDeleteView):
|
||||
queryset = Cluster.objects.all()
|
||||
@@ -322,7 +339,7 @@ class VirtualMachineListView(generic.ObjectListView):
|
||||
filterset = filtersets.VirtualMachineFilterSet
|
||||
filterset_form = forms.VirtualMachineFilterForm
|
||||
table = tables.VirtualMachineTable
|
||||
actions = (AddObject, BulkImport, BulkExport, BulkAddComponents, BulkEdit, BulkDelete)
|
||||
actions = (AddObject, BulkImport, BulkExport, BulkAddComponents, BulkEdit, BulkRename, BulkDelete)
|
||||
|
||||
|
||||
@register_model_view(VirtualMachine)
|
||||
@@ -417,6 +434,11 @@ class VirtualMachineBulkEditView(generic.BulkEditView):
|
||||
form = forms.VirtualMachineBulkEditForm
|
||||
|
||||
|
||||
@register_model_view(VirtualMachine, 'bulk_rename', path='rename', detail=False)
|
||||
class VirtualMachineBulkRenameView(generic.BulkRenameView):
|
||||
queryset = VirtualMachine.objects.all()
|
||||
|
||||
|
||||
@register_model_view(VirtualMachine, 'bulk_delete', path='delete', detail=False)
|
||||
class VirtualMachineBulkDeleteView(generic.BulkDeleteView):
|
||||
queryset = VirtualMachine.objects.prefetch_related('primary_ip4', 'primary_ip6')
|
||||
|
||||
Reference in New Issue
Block a user