@@ -65,19 +65,20 @@ class AccessListForm(NetBoxModelForm):
65
65
region = DynamicModelChoiceField (
66
66
queryset = Region .objects .all (),
67
67
required = False ,
68
+ initial_params = {
69
+ "sites" : "$site" ,
70
+ },
68
71
)
69
72
site_group = DynamicModelChoiceField (
70
73
queryset = SiteGroup .objects .all (),
71
74
required = False ,
72
75
label = "Site Group" ,
76
+ initial_params = {"sites" : "$site" },
73
77
)
74
78
site = DynamicModelChoiceField (
75
79
queryset = Site .objects .all (),
76
80
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" },
81
82
)
82
83
device = DynamicModelChoiceField (
83
84
queryset = Device .objects .all (),
@@ -101,32 +102,24 @@ class AccessListForm(NetBoxModelForm):
101
102
queryset = ClusterType .objects .all (),
102
103
required = False ,
103
104
)
104
-
105
105
cluster_group = DynamicModelChoiceField (
106
106
queryset = ClusterGroup .objects .all (),
107
107
required = False ,
108
- query_params = {
109
- "type_id" : "$cluster_type" ,
110
- },
108
+ query_params = {"type_id" : "$cluster_type" },
111
109
)
112
-
113
110
cluster = DynamicModelChoiceField (
114
111
queryset = Cluster .objects .all (),
115
112
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" },
120
114
)
121
115
122
116
virtual_machine = DynamicModelChoiceField (
123
117
queryset = VirtualMachine .objects .all (),
124
118
required = False ,
125
- label = "Virtual Machine" ,
126
119
query_params = {
120
+ "cluster_id" : "$cluster" ,
127
121
"cluster_type_id" : "$cluster_type" ,
128
122
"cluster_group_id" : "$cluster_group" ,
129
- "cluster_id" : "$cluster" ,
130
123
},
131
124
)
132
125
@@ -161,14 +154,30 @@ def __init__(self, *args, **kwargs):
161
154
instance = kwargs .get ("instance" )
162
155
initial = kwargs .get ("initial" , {}).copy ()
163
156
if instance :
164
- if type (instance .assigned_object ) is Device :
157
+ if isinstance (instance .assigned_object , Device ) :
165
158
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 ):
169
167
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
171
179
180
+ kwargs ["initial" ] = initial
172
181
super ().__init__ (* args , ** kwargs )
173
182
174
183
def clean (self ):
0 commit comments