mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-23 07:56:44 -06:00
8356 bulk add on virtualmachine
This commit is contained in:
parent
896f5f3016
commit
2b92660c9e
@ -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 %}
|
|
||||||
|
@ -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 %}
|
||||||
|
@ -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')
|
||||||
|
@ -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 = ()
|
||||||
|
@ -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,
|
||||||
}
|
}
|
||||||
|
@ -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'),
|
||||||
]
|
]
|
||||||
|
@ -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'
|
||||||
|
Loading…
Reference in New Issue
Block a user