Coverage for cluster/forms.py: 100%
18 statements
« prev ^ index » next coverage.py v7.17.0, created at 2026-10-24 19:06 +0000
« 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
6from django.forms import ModelMultipleChoiceField
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 """
15 server_set = ModelMultipleChoiceField(
16 label="Server",
17 queryset=ServerModel.objects.all().order_by("-cluster", "hostname"),
18 )
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)
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 = []
38 class Meta(SMForm.Meta):
39 model = Model
42class FormDisabled(Form, SMFormDisabled):
43 pass