mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
* 8356 add virtual disk model * 8356 add supplemental forms * 8356 add menu * 8356 cleanup views * 8356 virtual machine tab * 8356 migrations * 8356 vm disk tables * 8356 cleanup * 8356 graphql * 8356 graphql * 8356 add components button * 8356 bulk add on virtualmachine * 8356 bulk add fixes * 8356 api tests * 8356 news tests add rename * 8356 VirtualDiskCreateForm * 8356 fix test * 8356 add todo to remove disk from vm * 8356 review changes * 8356 fix test * 8356 deprecate disk field * 8356 review changes * 8356 fix test * 8356 fix test * Simplify view actions * 8356 review changes * 8356 split trans tag * 8356 add total virtual disk size to api * 8356 add virtual disk list to virtual machine detail view * 8356 move virtual disk size to property * 8356 revert property * Tweak display of deprecated disk field * 8356 render single disk field * 8356 update serializer * 8356 model property * 8356 fix test * 8356 review changes * Revert disk space annotation * Use existing disk field to store aggregate virtual disk size * Introduce abstract ComponentModel for VM components * Add search index for VirtualDisk * Misc cleanup --------- Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
from django import forms
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
from utilities.forms import BootstrapMixin, form_from_model
|
|
from utilities.forms.fields import ExpandableNameField
|
|
from virtualization.models import VirtualDisk, VMInterface, VirtualMachine
|
|
|
|
__all__ = (
|
|
'VirtualDiskBulkCreateForm',
|
|
'VMInterfaceBulkCreateForm',
|
|
)
|
|
|
|
|
|
class VirtualMachineBulkAddComponentForm(BootstrapMixin, forms.Form):
|
|
pk = forms.ModelMultipleChoiceField(
|
|
queryset=VirtualMachine.objects.all(),
|
|
widget=forms.MultipleHiddenInput()
|
|
)
|
|
name = ExpandableNameField(
|
|
label=_('Name')
|
|
)
|
|
|
|
def clean_tags(self):
|
|
# Because we're feeding TagField data (on the bulk edit form) to another TagField (on the model form), we
|
|
# must first convert the list of tags to a string.
|
|
return ','.join(self.cleaned_data.get('tags'))
|
|
|
|
|
|
class VMInterfaceBulkCreateForm(
|
|
form_from_model(VMInterface, ['enabled', 'mtu', 'description', 'tags']),
|
|
VirtualMachineBulkAddComponentForm
|
|
):
|
|
replication_fields = ('name',)
|
|
|
|
|
|
class VirtualDiskBulkCreateForm(
|
|
form_from_model(VirtualDisk, ['size', 'description', 'tags']),
|
|
VirtualMachineBulkAddComponentForm
|
|
):
|
|
replication_fields = ('name',)
|