mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-16 04:02:52 -06:00
Fixes #2698: Remove pagination restriction on bulk component creation for devices/VMs
This commit is contained in:
parent
68cb8b6895
commit
aca57ec281
@ -6,6 +6,7 @@ v2.5.2 (FUTURE)
|
|||||||
|
|
||||||
## Bug Fixes
|
## Bug Fixes
|
||||||
|
|
||||||
|
* [#2698](https://github.com/digitalocean/netbox/issues/2698) - Remove pagination restriction on bulk component creation for devices/VMs
|
||||||
* [#2707](https://github.com/digitalocean/netbox/issues/2707) - Correct permission evaluation for circuit termination cabling
|
* [#2707](https://github.com/digitalocean/netbox/issues/2707) - Correct permission evaluation for circuit termination cabling
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -1530,6 +1530,7 @@ class DeviceBulkAddConsolePortView(PermissionRequiredMixin, BulkComponentCreateV
|
|||||||
form = forms.DeviceBulkAddComponentForm
|
form = forms.DeviceBulkAddComponentForm
|
||||||
model = ConsolePort
|
model = ConsolePort
|
||||||
model_form = forms.ConsolePortForm
|
model_form = forms.ConsolePortForm
|
||||||
|
filter = filters.DeviceFilter
|
||||||
table = tables.DeviceTable
|
table = tables.DeviceTable
|
||||||
default_return_url = 'dcim:device_list'
|
default_return_url = 'dcim:device_list'
|
||||||
|
|
||||||
@ -1541,6 +1542,7 @@ class DeviceBulkAddConsoleServerPortView(PermissionRequiredMixin, BulkComponentC
|
|||||||
form = forms.DeviceBulkAddComponentForm
|
form = forms.DeviceBulkAddComponentForm
|
||||||
model = ConsoleServerPort
|
model = ConsoleServerPort
|
||||||
model_form = forms.ConsoleServerPortForm
|
model_form = forms.ConsoleServerPortForm
|
||||||
|
filter = filters.DeviceFilter
|
||||||
table = tables.DeviceTable
|
table = tables.DeviceTable
|
||||||
default_return_url = 'dcim:device_list'
|
default_return_url = 'dcim:device_list'
|
||||||
|
|
||||||
@ -1552,6 +1554,7 @@ class DeviceBulkAddPowerPortView(PermissionRequiredMixin, BulkComponentCreateVie
|
|||||||
form = forms.DeviceBulkAddComponentForm
|
form = forms.DeviceBulkAddComponentForm
|
||||||
model = PowerPort
|
model = PowerPort
|
||||||
model_form = forms.PowerPortForm
|
model_form = forms.PowerPortForm
|
||||||
|
filter = filters.DeviceFilter
|
||||||
table = tables.DeviceTable
|
table = tables.DeviceTable
|
||||||
default_return_url = 'dcim:device_list'
|
default_return_url = 'dcim:device_list'
|
||||||
|
|
||||||
@ -1563,6 +1566,7 @@ class DeviceBulkAddPowerOutletView(PermissionRequiredMixin, BulkComponentCreateV
|
|||||||
form = forms.DeviceBulkAddComponentForm
|
form = forms.DeviceBulkAddComponentForm
|
||||||
model = PowerOutlet
|
model = PowerOutlet
|
||||||
model_form = forms.PowerOutletForm
|
model_form = forms.PowerOutletForm
|
||||||
|
filter = filters.DeviceFilter
|
||||||
table = tables.DeviceTable
|
table = tables.DeviceTable
|
||||||
default_return_url = 'dcim:device_list'
|
default_return_url = 'dcim:device_list'
|
||||||
|
|
||||||
@ -1574,6 +1578,7 @@ class DeviceBulkAddInterfaceView(PermissionRequiredMixin, BulkComponentCreateVie
|
|||||||
form = forms.DeviceBulkAddInterfaceForm
|
form = forms.DeviceBulkAddInterfaceForm
|
||||||
model = Interface
|
model = Interface
|
||||||
model_form = forms.InterfaceForm
|
model_form = forms.InterfaceForm
|
||||||
|
filter = filters.DeviceFilter
|
||||||
table = tables.DeviceTable
|
table = tables.DeviceTable
|
||||||
default_return_url = 'dcim:device_list'
|
default_return_url = 'dcim:device_list'
|
||||||
|
|
||||||
@ -1585,6 +1590,7 @@ class DeviceBulkAddDeviceBayView(PermissionRequiredMixin, BulkComponentCreateVie
|
|||||||
form = forms.DeviceBulkAddComponentForm
|
form = forms.DeviceBulkAddComponentForm
|
||||||
model = DeviceBay
|
model = DeviceBay
|
||||||
model_form = forms.DeviceBayForm
|
model_form = forms.DeviceBayForm
|
||||||
|
filter = filters.DeviceFilter
|
||||||
table = tables.DeviceTable
|
table = tables.DeviceTable
|
||||||
default_return_url = 'dcim:device_list'
|
default_return_url = 'dcim:device_list'
|
||||||
|
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
{% load form_helpers %}
|
{% load form_helpers %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>Add {{ component_name|title }}</h1>
|
<h1>{% block title %}Add {{ model_name|title }}{% endblock %}</h1>
|
||||||
|
<p>{{ table.rows|length }} {{ parent_model_name }} selected</p>
|
||||||
<form action="." method="post" class="form form-horizontal">
|
<form action="." method="post" class="form form-horizontal">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{% if request.POST.return_url %}
|
{% if request.POST.return_url %}
|
||||||
@ -27,7 +28,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading"><strong>{{ component_name|title }} to Add</strong></div>
|
<div class="panel-heading"><strong>{{ model_name|title }} to Add</strong></div>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
{% for field in form.visible_fields %}
|
{% for field in form.visible_fields %}
|
||||||
{% render_field field %}
|
{% render_field field %}
|
||||||
|
@ -789,9 +789,12 @@ class BulkComponentCreateView(GetReturnURLMixin, View):
|
|||||||
|
|
||||||
def post(self, request):
|
def post(self, request):
|
||||||
|
|
||||||
|
parent_model_name = self.parent_model._meta.verbose_name_plural
|
||||||
|
model_name = self.model._meta.verbose_name_plural
|
||||||
|
|
||||||
# Are we editing *all* objects in the queryset or just a selected subset?
|
# Are we editing *all* objects in the queryset or just a selected subset?
|
||||||
if request.POST.get('_all') and self.filter is not None:
|
if request.POST.get('_all') and self.filter is not None:
|
||||||
pk_list = [obj.pk for obj in self.filter(request.GET, self.model.objects.only('pk')).qs]
|
pk_list = [obj.pk for obj in self.filter(request.GET, self.parent_model.objects.only('pk')).qs]
|
||||||
else:
|
else:
|
||||||
pk_list = [int(pk) for pk in request.POST.getlist('pk')]
|
pk_list = [int(pk) for pk in request.POST.getlist('pk')]
|
||||||
|
|
||||||
@ -829,9 +832,9 @@ class BulkComponentCreateView(GetReturnURLMixin, View):
|
|||||||
|
|
||||||
messages.success(request, "Added {} {} to {} {}.".format(
|
messages.success(request, "Added {} {} to {} {}.".format(
|
||||||
len(new_components),
|
len(new_components),
|
||||||
self.model._meta.verbose_name_plural,
|
model_name,
|
||||||
len(form.cleaned_data['pk']),
|
len(form.cleaned_data['pk']),
|
||||||
self.parent_model._meta.verbose_name_plural
|
parent_model_name
|
||||||
))
|
))
|
||||||
return redirect(self.get_return_url(request))
|
return redirect(self.get_return_url(request))
|
||||||
|
|
||||||
@ -840,7 +843,8 @@ class BulkComponentCreateView(GetReturnURLMixin, View):
|
|||||||
|
|
||||||
return render(request, self.template_name, {
|
return render(request, self.template_name, {
|
||||||
'form': form,
|
'form': form,
|
||||||
'component_name': self.model._meta.verbose_name_plural,
|
'parent_model_name': parent_model_name,
|
||||||
|
'model_name': model_name,
|
||||||
'table': table,
|
'table': table,
|
||||||
'return_url': self.get_return_url(request),
|
'return_url': self.get_return_url(request),
|
||||||
})
|
})
|
||||||
|
@ -369,5 +369,6 @@ class VirtualMachineBulkAddInterfaceView(PermissionRequiredMixin, BulkComponentC
|
|||||||
form = forms.VirtualMachineBulkAddInterfaceForm
|
form = forms.VirtualMachineBulkAddInterfaceForm
|
||||||
model = Interface
|
model = Interface
|
||||||
model_form = forms.InterfaceForm
|
model_form = forms.InterfaceForm
|
||||||
|
filter = filters.VirtualMachineFilter
|
||||||
table = tables.VirtualMachineTable
|
table = tables.VirtualMachineTable
|
||||||
default_return_url = 'virtualization:virtualmachine_list'
|
default_return_url = 'virtualization:virtualmachine_list'
|
||||||
|
Loading…
Reference in New Issue
Block a user