1
0
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:
Jeremy Stretch
2018-03-29 15:15:13 -04:00
parent 20cb13e1bb
commit 07364abf9e

View File

@ -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