|
@@ -16,8 +16,8 @@ from tenancy.models import Tenant
|
|
|
from utilities.forms import (
|
|
from utilities.forms import (
|
|
|
AnnotatedMultipleChoiceField, APISelect, APISelectMultiple, BootstrapMixin, BulkEditForm, BulkEditNullBooleanSelect,
|
|
AnnotatedMultipleChoiceField, APISelect, APISelectMultiple, BootstrapMixin, BulkEditForm, BulkEditNullBooleanSelect,
|
|
|
ChainedFieldsMixin, ChainedModelChoiceField, ChainedModelMultipleChoiceField, CommentField, ComponentForm,
|
|
ChainedFieldsMixin, ChainedModelChoiceField, ChainedModelMultipleChoiceField, CommentField, ComponentForm,
|
|
|
- ConfirmationForm, CSVChoiceField, ExpandableNameField, FilterChoiceField, JSONField, SlugField, SmallTextarea,
|
|
|
|
|
- add_blank_choice
|
|
|
|
|
|
|
+ ConfirmationForm, CSVChoiceField, ExpandableNameField, FilterChoiceField, FilterTreeNodeMultipleChoiceField,
|
|
|
|
|
+ JSONField, SlugField, SmallTextarea, add_blank_choice,
|
|
|
)
|
|
)
|
|
|
from .constants import VM_STATUS_CHOICES
|
|
from .constants import VM_STATUS_CHOICES
|
|
|
from .models import Cluster, ClusterGroup, ClusterType, VirtualMachine
|
|
from .models import Cluster, ClusterGroup, ClusterType, VirtualMachine
|
|
@@ -386,6 +386,11 @@ class VirtualMachineFilterForm(BootstrapMixin, CustomFieldFilterForm):
|
|
|
queryset=Cluster.objects.annotate(filter_count=Count('virtual_machines')),
|
|
queryset=Cluster.objects.annotate(filter_count=Count('virtual_machines')),
|
|
|
label='Cluster'
|
|
label='Cluster'
|
|
|
)
|
|
)
|
|
|
|
|
+ region = FilterTreeNodeMultipleChoiceField(
|
|
|
|
|
+ queryset=Region.objects.all(),
|
|
|
|
|
+ to_field_name='slug',
|
|
|
|
|
+ required=False,
|
|
|
|
|
+ )
|
|
|
site = FilterChoiceField(
|
|
site = FilterChoiceField(
|
|
|
queryset=Site.objects.annotate(filter_count=Count('clusters__virtual_machines')),
|
|
queryset=Site.objects.annotate(filter_count=Count('clusters__virtual_machines')),
|
|
|
to_field_name='slug',
|
|
to_field_name='slug',
|