@@ -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
@@ -160,14 +153,30 @@ def __init__(self, *args, **kwargs):
160153 instance = kwargs .get ("instance" )
161154 initial = kwargs .get ("initial" , {}).copy ()
162155 if instance :
163- if type (instance .assigned_object ) is Device :
156+ if isinstance (instance .assigned_object , Device ) :
164157 initial ["device" ] = instance .assigned_object
165- elif type (instance .assigned_object ) is VirtualChassis :
166- initial ["virtual_chassis" ] = instance .assigned_object
167- elif type (instance .assigned_object ) is VirtualMachine :
158+ if instance .assigned_object .site :
159+ initial ["site" ] = instance .assigned_object .site
160+ if instance .assigned_object .site .group :
161+ initial ["site_group" ] = instance .assigned_object .site .group
162+
163+ if instance .assigned_object .site .region :
164+ initial ["region" ] = instance .assigned_object .site .region
165+ elif isinstance (instance .assigned_object , VirtualMachine ):
168166 initial ["virtual_machine" ] = instance .assigned_object
169- kwargs ["initial" ] = initial
167+ if instance .assigned_object .cluster :
168+ initial ["cluster" ] = instance .assigned_object .cluster
169+ if instance .assigned_object .cluster .group :
170+ initial [
171+ "cluster_group"
172+ ] = instance .assigned_object .cluster .group
173+
174+ if instance .assigned_object .cluster .type :
175+ initial ["cluster_type" ] = instance .assigned_object .cluster .type
176+ elif isinstance (instance .assigned_object , VirtualChassis ):
177+ initial ["virtual_chassis" ] = instance .assigned_object
170178
179+ kwargs ["initial" ] = initial
171180 super ().__init__ (* args , ** kwargs )
172181
173182 def clean (self ):
0 commit comments