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

1from django import forms 

2from django.utils.translation import gettext_lazy as _ 

3 

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 

8 

9__all__ = ( 

10 'VMInterfaceBulkCreateForm', 

11 'VirtualDiskBulkCreateForm', 

12) 

13 

14 

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 ) 

23 

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')) 

28 

29 

30class VMInterfaceBulkCreateForm( 

31 form_from_model(VMInterface, ['enabled', 'mtu', 'description', 'tags']), 

32 VirtualMachineBulkAddComponentForm 

33): 

34 replication_fields = ('name',) 

35 

36 

37class VirtualDiskBulkCreateForm( 

38 form_from_model(VirtualDisk, ['size', 'description', 'tags']), 

39 VirtualMachineBulkAddComponentForm 

40): 

41 replication_fields = ('name',)