8356 bulk add on virtualmachine

This commit is contained in:
Arthur 2023-10-20 09:31:03 -07:00
parent 896f5f3016
commit 2b92660c9e
7 changed files with 54 additions and 41 deletions

View File

@ -1,14 +1,3 @@
{% extends 'generic/object_children.html' %}
{% load helpers %}
{% load i18n %}
{% block bulk_edit_controls %}
{{ block.super }}
{% if 'bulk_rename' in actions %}
<button type="submit" name="_rename"
formaction="{% url 'virtualization:vminterface_bulk_rename' %}?return_url={{ return_url }}"
class="btn btn-outline-warning btn-sm">
<i class="mdi mdi-pencil-outline" aria-hidden="true"></i> {% trans "Rename" %}
</button>
{% endif %}
{% endblock bulk_edit_controls %}

View File

@ -15,6 +15,13 @@
</button>
</li>
{% endif %}
{% if perms.virtualization.add_virtualdisk %}
<li>
<button type="submit" formaction="{% url 'virtualization:virtualmachine_bulk_add_virtualdisk' %}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" class="dropdown-item">
{% trans "Virtual Disks" %}
</button>
</li>
{% endif %}
</ul>
</div>
{% endif %}

View File

@ -6,6 +6,7 @@ from utilities.forms.fields import ExpandableNameField
from virtualization.models import VirtualDisk, VMInterface, VirtualMachine
__all__ = (
'VirtualDiskBulkCreateForm',
'VMInterfaceBulkCreateForm',
)
@ -33,7 +34,12 @@ class VMInterfaceBulkCreateForm(
class VirtualDiskBulkCreateForm(
form_from_model(VirtualDisk, ['tags']),
form_from_model(VirtualDisk, ['size', 'tags']),
VirtualMachineBulkAddComponentForm
):
size = forms.IntegerField(
required=False,
label=_('Size (GB)')
)
replication_fields = ('name', 'size')

View File

@ -326,9 +326,13 @@ class VirtualDiskBulkEditForm(NetBoxModelBulkEditForm):
disabled=True,
widget=forms.HiddenInput()
)
size = forms.IntegerField(
required=False,
label=_('Size (GB)')
)
model = VirtualDisk
fieldsets = (
(None, ('mtu', 'enabled', 'vrf', 'size')),
(None, ('size',)),
)
nullable_fields = ()

View File

@ -194,9 +194,9 @@ class VirtualMachineVirtualDiskTable(VirtualDiskTable):
class Meta(NetBoxTable.Meta):
model = VirtualDisk
fields = (
'pk', 'id', 'name', 'tags', 'actions',
'pk', 'id', 'name', 'size', 'tags', 'actions',
)
default_columns = ('pk', 'name',)
default_columns = ('pk', 'name', 'size')
row_attrs = {
'data-name': lambda record: record.name,
}

View File

@ -53,8 +53,7 @@ urlpatterns = [
path('disks/add/', views.VirtualDiskEditView.as_view(), name='virtualdisk_add'),
path('disks/import/', views.VirtualDiskBulkImportView.as_view(), name='virtualdisk_import'),
path('disks/edit/', views.VirtualDiskBulkEditView.as_view(), name='virtualdisk_bulk_edit'),
# path('disks/rename/', views.VirtualDiskBulkRenameView.as_view(), name='virtualdisk_bulk_rename'),
path('disks/delete/', views.VirtualDiskBulkDeleteView.as_view(), name='virtualdisk_bulk_delete'),
path('disks/<int:pk>/', include(get_model_urls('virtualization', 'virtualdisk'))),
# path('virtual-machines/disks/add/', views.VirtualMachineBulkAddDiskView.as_view(), name='virtualmachine_bulk_add_disk'),
path('virtual-machines/disks/add/', views.VirtualMachineBulkAddVirtualDiskView.as_view(), name='virtualmachine_bulk_add_virtualdisk'),
]

View File

@ -586,24 +586,6 @@ class VMInterfaceBulkDeleteView(generic.BulkDeleteView):
table = tables.VMInterfaceTable
#
# Bulk Device component creation
#
class VirtualMachineBulkAddInterfaceView(generic.BulkComponentCreateView):
parent_model = VirtualMachine
parent_field = 'virtual_machine'
form = forms.VMInterfaceBulkCreateForm
queryset = VMInterface.objects.all()
model_form = forms.VMInterfaceForm
filterset = filtersets.VirtualMachineFilterSet
table = tables.VirtualMachineTable
default_return_url = 'virtualization:virtualmachine_list'
def get_required_permission(self):
return f'virtualization.add_vminterface'
#
# Virtual Disk
#
@ -620,12 +602,6 @@ class VirtualDiskView(generic.ObjectView):
queryset = VirtualDisk.objects.all()
# class VirtualDiskCreateView(generic.ComponentCreateView):
# queryset = VirtualDisk.objects.all()
# form = forms.VirtualDiskCreateForm
# model_form = forms.VirtualDiskForm
@register_model_view(VirtualDisk, 'edit')
class VirtualDiskEditView(generic.ObjectEditView):
queryset = VirtualDisk.objects.all()
@ -653,3 +629,35 @@ class VirtualDiskBulkDeleteView(generic.BulkDeleteView):
queryset = VirtualDisk.objects.all()
filterset = filtersets.VirtualDiskFilterSet
table = tables.VirtualDiskTable
#
# Bulk Device component creation
#
class VirtualMachineBulkAddInterfaceView(generic.BulkComponentCreateView):
parent_model = VirtualMachine
parent_field = 'virtual_machine'
form = forms.VMInterfaceBulkCreateForm
queryset = VMInterface.objects.all()
model_form = forms.VMInterfaceForm
filterset = filtersets.VirtualMachineFilterSet
table = tables.VirtualMachineTable
default_return_url = 'virtualization:virtualmachine_list'
def get_required_permission(self):
return f'virtualization.add_vminterface'
class VirtualMachineBulkAddVirtualDiskView(generic.BulkComponentCreateView):
parent_model = VirtualMachine
parent_field = 'virtual_machine'
form = forms.VirtualDiskBulkCreateForm
queryset = VirtualDisk.objects.all()
model_form = forms.VirtualDiskForm
filterset = filtersets.VirtualMachineFilterSet
table = tables.VirtualMachineTable
default_return_url = 'virtualization:virtualmachine_list'
def get_required_permission(self):
return f'virtualization.add_virtualdisk'