Coverage for virtualization/forms/bulk_create.py: 94%
16 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
1from django import forms
2from django.utils.translation import gettext_lazy as _
4from utilities.forms import form_from_model
5from utilities.forms.fields import ExpandableNameField
6from utilities.forms.mixins import BackgroundJobMixin
7from virtualization.models import VirtualDisk, VirtualMachine, VMInterface
9__all__ = (
10 'VMInterfaceBulkCreateForm',
11 'VirtualDiskBulkCreateForm',
12)
15class VirtualMachineBulkAddComponentForm(BackgroundJobMixin, forms.Form):
16 pk = forms.ModelMultipleChoiceField(
17 queryset=VirtualMachine.objects.all(),
18 widget=forms.MultipleHiddenInput()
19 )
20 name = ExpandableNameField(
21 label=_('Name')
22 )
24 def clean_tags(self):
25 # Because we're feeding TagField data (on the bulk edit form) to another TagField (on the model form), we
26 # must first convert the list of tags to a string.
27 return ','.join(self.cleaned_data.get('tags'))
30class VMInterfaceBulkCreateForm(
31 form_from_model(VMInterface, ['enabled', 'mtu', 'description', 'tags']),
32 VirtualMachineBulkAddComponentForm
33):
34 replication_fields = ('name',)
37class VirtualDiskBulkCreateForm(
38 form_from_model(VirtualDisk, ['size', 'description', 'tags']),
39 VirtualMachineBulkAddComponentForm
40):
41 replication_fields = ('name',)