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' %} {% extends 'generic/object_children.html' %}
{% load helpers %} {% load helpers %}
{% load i18n %} {% 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> </button>
</li> </li>
{% endif %} {% 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> </ul>
</div> </div>
{% endif %} {% endif %}

View File

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

View File

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

View File

@ -194,9 +194,9 @@ class VirtualMachineVirtualDiskTable(VirtualDiskTable):
class Meta(NetBoxTable.Meta): class Meta(NetBoxTable.Meta):
model = VirtualDisk model = VirtualDisk
fields = ( fields = (
'pk', 'id', 'name', 'tags', 'actions', 'pk', 'id', 'name', 'size', 'tags', 'actions',
) )
default_columns = ('pk', 'name',) default_columns = ('pk', 'name', 'size')
row_attrs = { row_attrs = {
'data-name': lambda record: record.name, '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/add/', views.VirtualDiskEditView.as_view(), name='virtualdisk_add'),
path('disks/import/', views.VirtualDiskBulkImportView.as_view(), name='virtualdisk_import'), path('disks/import/', views.VirtualDiskBulkImportView.as_view(), name='virtualdisk_import'),
path('disks/edit/', views.VirtualDiskBulkEditView.as_view(), name='virtualdisk_bulk_edit'), 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/delete/', views.VirtualDiskBulkDeleteView.as_view(), name='virtualdisk_bulk_delete'),
path('disks/<int:pk>/', include(get_model_urls('virtualization', 'virtualdisk'))), 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 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 # Virtual Disk
# #
@ -620,12 +602,6 @@ class VirtualDiskView(generic.ObjectView):
queryset = VirtualDisk.objects.all() queryset = VirtualDisk.objects.all()
# class VirtualDiskCreateView(generic.ComponentCreateView):
# queryset = VirtualDisk.objects.all()
# form = forms.VirtualDiskCreateForm
# model_form = forms.VirtualDiskForm
@register_model_view(VirtualDisk, 'edit') @register_model_view(VirtualDisk, 'edit')
class VirtualDiskEditView(generic.ObjectEditView): class VirtualDiskEditView(generic.ObjectEditView):
queryset = VirtualDisk.objects.all() queryset = VirtualDisk.objects.all()
@ -653,3 +629,35 @@ class VirtualDiskBulkDeleteView(generic.BulkDeleteView):
queryset = VirtualDisk.objects.all() queryset = VirtualDisk.objects.all()
filterset = filtersets.VirtualDiskFilterSet filterset = filtersets.VirtualDiskFilterSet
table = tables.VirtualDiskTable 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'