mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-14 07:42: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:
@@ -1,4 +1,5 @@
|
||||
from ipam.tables import RouteTargetTable
|
||||
from netbox.object_actions import AddObject, BulkDelete, BulkEdit, BulkExport, BulkImport
|
||||
from netbox.views import generic
|
||||
from utilities.query import count_related
|
||||
from utilities.views import GetRelatedModelsMixin, register_model_view
|
||||
@@ -58,6 +59,11 @@ class TunnelGroupBulkEditView(generic.BulkEditView):
|
||||
form = forms.TunnelGroupBulkEditForm
|
||||
|
||||
|
||||
@register_model_view(TunnelGroup, 'bulk_rename', path='rename', detail=False)
|
||||
class TunnelGroupBulkRenameView(generic.BulkRenameView):
|
||||
queryset = TunnelGroup.objects.all()
|
||||
|
||||
|
||||
@register_model_view(TunnelGroup, 'bulk_delete', path='delete', detail=False)
|
||||
class TunnelGroupBulkDeleteView(generic.BulkDeleteView):
|
||||
queryset = TunnelGroup.objects.annotate(
|
||||
@@ -122,6 +128,11 @@ class TunnelBulkEditView(generic.BulkEditView):
|
||||
form = forms.TunnelBulkEditForm
|
||||
|
||||
|
||||
@register_model_view(Tunnel, 'bulk_rename', path='rename', detail=False)
|
||||
class TunnelBulkRenameView(generic.BulkRenameView):
|
||||
queryset = Tunnel.objects.all()
|
||||
|
||||
|
||||
@register_model_view(Tunnel, 'bulk_delete', path='delete', detail=False)
|
||||
class TunnelBulkDeleteView(generic.BulkDeleteView):
|
||||
queryset = Tunnel.objects.annotate(
|
||||
@@ -224,6 +235,11 @@ class IKEProposalBulkEditView(generic.BulkEditView):
|
||||
form = forms.IKEProposalBulkEditForm
|
||||
|
||||
|
||||
@register_model_view(IKEProposal, 'bulk_rename', path='rename', detail=False)
|
||||
class IKEProposalBulkRenameView(generic.BulkRenameView):
|
||||
queryset = IKEProposal.objects.all()
|
||||
|
||||
|
||||
@register_model_view(IKEProposal, 'bulk_delete', path='delete', detail=False)
|
||||
class IKEProposalBulkDeleteView(generic.BulkDeleteView):
|
||||
queryset = IKEProposal.objects.all()
|
||||
@@ -274,6 +290,11 @@ class IKEPolicyBulkEditView(generic.BulkEditView):
|
||||
form = forms.IKEPolicyBulkEditForm
|
||||
|
||||
|
||||
@register_model_view(IKEPolicy, 'bulk_rename', path='rename', detail=False)
|
||||
class IKEPolicyBulkRenameView(generic.BulkRenameView):
|
||||
queryset = IKEPolicy.objects.all()
|
||||
|
||||
|
||||
@register_model_view(IKEPolicy, 'bulk_delete', path='delete', detail=False)
|
||||
class IKEPolicyBulkDeleteView(generic.BulkDeleteView):
|
||||
queryset = IKEPolicy.objects.all()
|
||||
@@ -324,6 +345,11 @@ class IPSecProposalBulkEditView(generic.BulkEditView):
|
||||
form = forms.IPSecProposalBulkEditForm
|
||||
|
||||
|
||||
@register_model_view(IPSecProposal, 'bulk_rename', path='rename', detail=False)
|
||||
class IPSecProposalBulkRenameView(generic.BulkRenameView):
|
||||
queryset = IPSecProposal.objects.all()
|
||||
|
||||
|
||||
@register_model_view(IPSecProposal, 'bulk_delete', path='delete', detail=False)
|
||||
class IPSecProposalBulkDeleteView(generic.BulkDeleteView):
|
||||
queryset = IPSecProposal.objects.all()
|
||||
@@ -374,6 +400,11 @@ class IPSecPolicyBulkEditView(generic.BulkEditView):
|
||||
form = forms.IPSecPolicyBulkEditForm
|
||||
|
||||
|
||||
@register_model_view(IPSecPolicy, 'bulk_rename', path='rename', detail=False)
|
||||
class IPSecPolicyBulkRenameView(generic.BulkRenameView):
|
||||
queryset = IPSecPolicy.objects.all()
|
||||
|
||||
|
||||
@register_model_view(IPSecPolicy, 'bulk_delete', path='delete', detail=False)
|
||||
class IPSecPolicyBulkDeleteView(generic.BulkDeleteView):
|
||||
queryset = IPSecPolicy.objects.all()
|
||||
@@ -424,6 +455,11 @@ class IPSecProfileBulkEditView(generic.BulkEditView):
|
||||
form = forms.IPSecProfileBulkEditForm
|
||||
|
||||
|
||||
@register_model_view(IPSecProfile, 'bulk_rename', path='rename', detail=False)
|
||||
class IPSecProfileBulkRenameView(generic.BulkRenameView):
|
||||
queryset = IPSecProfile.objects.all()
|
||||
|
||||
|
||||
@register_model_view(IPSecProfile, 'bulk_delete', path='delete', detail=False)
|
||||
class IPSecProfileBulkDeleteView(generic.BulkDeleteView):
|
||||
queryset = IPSecProfile.objects.all()
|
||||
@@ -491,6 +527,11 @@ class L2VPNBulkEditView(generic.BulkEditView):
|
||||
form = forms.L2VPNBulkEditForm
|
||||
|
||||
|
||||
@register_model_view(L2VPN, 'bulk_rename', path='rename', detail=False)
|
||||
class L2VPNBulkRenameView(generic.BulkRenameView):
|
||||
queryset = L2VPN.objects.all()
|
||||
|
||||
|
||||
@register_model_view(L2VPN, 'bulk_delete', path='delete', detail=False)
|
||||
class L2VPNBulkDeleteView(generic.BulkDeleteView):
|
||||
queryset = L2VPN.objects.all()
|
||||
@@ -508,6 +549,7 @@ class L2VPNTerminationListView(generic.ObjectListView):
|
||||
table = tables.L2VPNTerminationTable
|
||||
filterset = filtersets.L2VPNTerminationFilterSet
|
||||
filterset_form = forms.L2VPNTerminationFilterForm
|
||||
actions = (AddObject, BulkImport, BulkExport, BulkEdit, BulkDelete)
|
||||
|
||||
|
||||
@register_model_view(L2VPNTermination)
|
||||
|
||||
Reference in New Issue
Block a user