mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Fixes #1988: Order interfaces naturally when bulk renaming
This commit is contained in:
@ -41,19 +41,21 @@ class BulkRenameView(View):
|
|||||||
"""
|
"""
|
||||||
An extendable view for renaming device components in bulk.
|
An extendable view for renaming device components in bulk.
|
||||||
"""
|
"""
|
||||||
model = None
|
queryset = None
|
||||||
form = None
|
form = None
|
||||||
template_name = 'dcim/bulk_rename.html'
|
template_name = 'dcim/bulk_rename.html'
|
||||||
|
|
||||||
def post(self, request):
|
def post(self, request):
|
||||||
|
|
||||||
|
model = self.queryset.model
|
||||||
|
|
||||||
return_url = request.GET.get('return_url')
|
return_url = request.GET.get('return_url')
|
||||||
if not return_url or not is_safe_url(url=return_url, host=request.get_host()):
|
if not return_url or not is_safe_url(url=return_url, host=request.get_host()):
|
||||||
return_url = 'home'
|
return_url = 'home'
|
||||||
|
|
||||||
if '_preview' in request.POST or '_apply' in request.POST:
|
if '_preview' in request.POST or '_apply' in request.POST:
|
||||||
form = self.form(request.POST, initial={'pk': request.POST.getlist('pk')})
|
form = self.form(request.POST, initial={'pk': request.POST.getlist('pk')})
|
||||||
selected_objects = self.model.objects.filter(pk__in=form.initial['pk'])
|
selected_objects = self.queryset.filter(pk__in=form.initial['pk'])
|
||||||
|
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
for obj in selected_objects:
|
for obj in selected_objects:
|
||||||
@ -65,17 +67,17 @@ class BulkRenameView(View):
|
|||||||
obj.save()
|
obj.save()
|
||||||
messages.success(request, "Renamed {} {}".format(
|
messages.success(request, "Renamed {} {}".format(
|
||||||
len(selected_objects),
|
len(selected_objects),
|
||||||
self.model._meta.verbose_name_plural
|
model._meta.verbose_name_plural
|
||||||
))
|
))
|
||||||
return redirect(return_url)
|
return redirect(return_url)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
form = self.form(initial={'pk': request.POST.getlist('pk')})
|
form = self.form(initial={'pk': request.POST.getlist('pk')})
|
||||||
selected_objects = self.model.objects.filter(pk__in=form.initial['pk'])
|
selected_objects = self.queryset.filter(pk__in=form.initial['pk'])
|
||||||
|
|
||||||
return render(request, self.template_name, {
|
return render(request, self.template_name, {
|
||||||
'form': form,
|
'form': form,
|
||||||
'obj_type_plural': self.model._meta.verbose_name_plural,
|
'obj_type_plural': model._meta.verbose_name_plural,
|
||||||
'selected_objects': selected_objects,
|
'selected_objects': selected_objects,
|
||||||
'return_url': return_url,
|
'return_url': return_url,
|
||||||
})
|
})
|
||||||
@ -1316,7 +1318,7 @@ class ConsoleServerPortDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
|||||||
|
|
||||||
class ConsoleServerPortBulkRenameView(PermissionRequiredMixin, BulkRenameView):
|
class ConsoleServerPortBulkRenameView(PermissionRequiredMixin, BulkRenameView):
|
||||||
permission_required = 'dcim.change_consoleserverport'
|
permission_required = 'dcim.change_consoleserverport'
|
||||||
model = ConsoleServerPort
|
queryset = ConsoleServerPort.objects.all()
|
||||||
form = forms.ConsoleServerPortBulkRenameForm
|
form = forms.ConsoleServerPortBulkRenameForm
|
||||||
|
|
||||||
|
|
||||||
@ -1600,7 +1602,7 @@ class PowerOutletDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
|||||||
|
|
||||||
class PowerOutletBulkRenameView(PermissionRequiredMixin, BulkRenameView):
|
class PowerOutletBulkRenameView(PermissionRequiredMixin, BulkRenameView):
|
||||||
permission_required = 'dcim.change_poweroutlet'
|
permission_required = 'dcim.change_poweroutlet'
|
||||||
model = PowerOutlet
|
queryset = PowerOutlet.objects.all()
|
||||||
form = forms.PowerOutletBulkRenameForm
|
form = forms.PowerOutletBulkRenameForm
|
||||||
|
|
||||||
|
|
||||||
@ -1676,7 +1678,7 @@ class InterfaceBulkEditView(PermissionRequiredMixin, BulkEditView):
|
|||||||
|
|
||||||
class InterfaceBulkRenameView(PermissionRequiredMixin, BulkRenameView):
|
class InterfaceBulkRenameView(PermissionRequiredMixin, BulkRenameView):
|
||||||
permission_required = 'dcim.change_interface'
|
permission_required = 'dcim.change_interface'
|
||||||
model = Interface
|
queryset = Interface.objects.order_naturally()
|
||||||
form = forms.InterfaceBulkRenameForm
|
form = forms.InterfaceBulkRenameForm
|
||||||
|
|
||||||
|
|
||||||
@ -1783,7 +1785,7 @@ class DeviceBayDepopulateView(PermissionRequiredMixin, View):
|
|||||||
|
|
||||||
class DeviceBayBulkRenameView(PermissionRequiredMixin, BulkRenameView):
|
class DeviceBayBulkRenameView(PermissionRequiredMixin, BulkRenameView):
|
||||||
permission_required = 'dcim.change_devicebay'
|
permission_required = 'dcim.change_devicebay'
|
||||||
model = DeviceBay
|
queryset = DeviceBay.objects.all()
|
||||||
form = forms.DeviceBayBulkRenameForm
|
form = forms.DeviceBayBulkRenameForm
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user