@@ -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
@@ -160,14 +153,30 @@ def __init__(self, *args, **kwargs):
160
153
instance = kwargs .get ("instance" )
161
154
initial = kwargs .get ("initial" , {}).copy ()
162
155
if instance :
163
- if type (instance .assigned_object ) is Device :
156
+ if isinstance (instance .assigned_object , Device ) :
164
157
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 ):
168
166
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
170
178
179
+ kwargs ["initial" ] = initial
171
180
super ().__init__ (* args , ** kwargs )
172
181
173
182
def clean (self ):
0 commit comments