Coverage for cluster/forms.py: 100%

18 statements  

« prev     ^ index     » next       coverage.py v7.17.0, created at 2026-10-24 19:06 +0000

1from .models import Model 

2from sm.forms import SMForm, SMFormDisabled 

3from sm.mixins import filter_queryset_for_user 

4from server.models import Model as ServerModel 

5 

6from django.forms import ModelMultipleChoiceField 

7 

8 

9class Form(SMForm): 

10 """ 

11 Form providing an extra field; All ServerModels ordered by cluster and 

12 hostname, additionally sets the initial list in __init__() 

13 """ 

14 

15 server_set = ModelMultipleChoiceField( 

16 label="Server", 

17 queryset=ServerModel.objects.all().order_by("-cluster", "hostname"), 

18 ) 

19 

20 def __init__(self, *args, **kwargs): 

21 """ 

22 Set initial list of servers, since this is a reverse model relation, 

23 this is done manually here 

24 """ 

25 super().__init__(*args, **kwargs) 

26 

27 self.fields["server_set"].required = False 

28 self.fields["server_set"].queryset = filter_queryset_for_user( 

29 ServerModel.objects.all().order_by("-cluster", "hostname"), self.user 

30 ) 

31 if self.instance and self.instance.pk: 

32 self.fields["server_set"].initial = ( 

33 self.instance.server_set.all().values_list("id", flat=True) 

34 ) 

35 else: 

36 self.fields["server_set"].initial = [] 

37 

38 class Meta(SMForm.Meta): 

39 model = Model 

40 

41 

42class FormDisabled(Form, SMFormDisabled): 

43 pass