added vm filtering in acl add/edit page

This commit is contained in:
Abhimanyu Saharan 2023-01-21 14:49:19 +05:30
parent 7fc3367ba6
commit d223e33679
2 changed files with 43 additions and 5 deletions

View File

@ -14,7 +14,13 @@ from utilities.forms import (
DynamicModelChoiceField,
DynamicModelMultipleChoiceField,
)
from virtualization.models import VirtualMachine, VMInterface
from virtualization.models import (
Cluster,
ClusterGroup,
ClusterType,
VirtualMachine,
VMInterface,
)
from ..models import (
AccessList,
@ -59,6 +65,7 @@ class AccessListForm(NetBoxModelForm):
Requires a device, a name, a type, and a default_action.
"""
# Device selector
region = DynamicModelChoiceField(
queryset=Region.objects.all(),
required=False,
@ -85,21 +92,49 @@ class AccessListForm(NetBoxModelForm):
"site_id": "$site",
},
)
# Virtual Chassis selector
virtual_chassis = DynamicModelChoiceField(
queryset=VirtualChassis.objects.all(),
required=False,
label="Virtual Chassis",
)
# Virtual Machine selector
cluster_type = DynamicModelChoiceField(
queryset=ClusterType.objects.all(),
required=False,
)
cluster_group = DynamicModelChoiceField(
queryset=ClusterGroup.objects.all(),
required=False,
query_params={
"type_id": "$cluster_type",
},
)
cluster = DynamicModelChoiceField(
queryset=Cluster.objects.all(),
required=False,
query_params={
"type_id": "$cluster_type",
"group_id": "$cluster_group",
},
)
virtual_machine = DynamicModelChoiceField(
queryset=VirtualMachine.objects.all(),
required=False,
label="Virtual Machine",
query_params={
"cluster_type_id": "$cluster_type",
"cluster_group_id": "$cluster_group",
"cluster_id": "$cluster",
},
)
comments = CommentField()
tags = DynamicModelMultipleChoiceField(
queryset=Tag.objects.all(),
required=False,
)
class Meta:
model = AccessList

View File

@ -67,6 +67,9 @@
{% render_field form.virtual_chassis %}
</div>
<div class="tab-pane{% if form.initial.virtual_machine %} active{% endif %}" id="virtualmachine">
{% render_field form.cluster_type %}
{% render_field form.cluster_group %}
{% render_field form.cluster %}
{% render_field form.virtual_machine %}
</div>
</div>