@@ -65,19 +65,20 @@ class AccessListForm(NetBoxModelForm):
6565 region = DynamicModelChoiceField (
6666 queryset = Region .objects .all (),
6767 required = False ,
68+ initial_params = {
69+ "sites" : "$site" ,
70+ },
6871 )
6972 site_group = DynamicModelChoiceField (
7073 queryset = SiteGroup .objects .all (),
7174 required = False ,
7275 label = "Site Group" ,
76+ initial_params = {"sites" : "$site" },
7377 )
7478 site = DynamicModelChoiceField (
7579 queryset = Site .objects .all (),
7680 required = False ,
77- query_params = {
78- "region_id" : "$region" ,
79- "group_id" : "$site_group" ,
80- },
81+ query_params = {"region_id" : "$region" , "group_id" : "$site_group" },
8182 )
8283 device = DynamicModelChoiceField (
8384 queryset = Device .objects .all (),
@@ -101,32 +102,24 @@ class AccessListForm(NetBoxModelForm):
101102 queryset = ClusterType .objects .all (),
102103 required = False ,
103104 )
104-
105105 cluster_group = DynamicModelChoiceField (
106106 queryset = ClusterGroup .objects .all (),
107107 required = False ,
108- query_params = {
109- "type_id" : "$cluster_type" ,
110- },
108+ query_params = {"type_id" : "$cluster_type" },
111109 )
112-
113110 cluster = DynamicModelChoiceField (
114111 queryset = Cluster .objects .all (),
115112 required = False ,
116- query_params = {
117- "type_id" : "$cluster_type" ,
118- "group_id" : "$cluster_group" ,
119- },
113+ query_params = {"type_id" : "$cluster_type" , "group_id" : "$cluster_group" },
120114 )
121115
122116 virtual_machine = DynamicModelChoiceField (
123117 queryset = VirtualMachine .objects .all (),
124118 required = False ,
125- label = "Virtual Machine" ,
126119 query_params = {
120+ "cluster_id" : "$cluster" ,
127121 "cluster_type_id" : "$cluster_type" ,
128122 "cluster_group_id" : "$cluster_group" ,
129- "cluster_id" : "$cluster" ,
130123 },
131124 )
132125
@@ -161,14 +154,30 @@ def __init__(self, *args, **kwargs):
161154 instance = kwargs .get ("instance" )
162155 initial = kwargs .get ("initial" , {}).copy ()
163156 if instance :
164- if type (instance .assigned_object ) is Device :
157+ if isinstance (instance .assigned_object , Device ) :
165158 initial ["device" ] = instance .assigned_object
166- elif type (instance .assigned_object ) is VirtualChassis :
167- initial ["virtual_chassis" ] = instance .assigned_object
168- elif type (instance .assigned_object ) is VirtualMachine :
159+ if instance .assigned_object .site :
160+ initial ["site" ] = instance .assigned_object .site
161+ if instance .assigned_object .site .group :
162+ initial ["site_group" ] = instance .assigned_object .site .group
163+
164+ if instance .assigned_object .site .region :
165+ initial ["region" ] = instance .assigned_object .site .region
166+ elif isinstance (instance .assigned_object , VirtualMachine ):
169167 initial ["virtual_machine" ] = instance .assigned_object
170- kwargs ["initial" ] = initial
168+ if instance .assigned_object .cluster :
169+ initial ["cluster" ] = instance .assigned_object .cluster
170+ if instance .assigned_object .cluster .group :
171+ initial [
172+ "cluster_group"
173+ ] = instance .assigned_object .cluster .group
174+
175+ if instance .assigned_object .cluster .type :
176+ initial ["cluster_type" ] = instance .assigned_object .cluster .type
177+ elif isinstance (instance .assigned_object , VirtualChassis ):
178+ initial ["virtual_chassis" ] = instance .assigned_object
171179
180+ kwargs ["initial" ] = initial
172181 super ().__init__ (* args , ** kwargs )
173182
174183 def clean (self ):
0 commit comments