77 DeviceBayTemplate ,
88 FrontPortTemplate ,
99 InterfaceTemplate ,
10+ PortTemplateMapping ,
1011 PowerOutletTemplate ,
1112 PowerPortTemplate ,
1213 RearPortTemplate ,
@@ -129,6 +130,18 @@ def load_data(self):
129130 c_param [n_assoc ] = n_model .objects .get (** n_query )
130131
131132 for new_param in expanded_c_params :
133+ # FrontPortTemplate: rear_port/rear_port_position moved to PortTemplateMapping
134+ port_mapping_params = {}
135+ if c_model is FrontPortTemplate :
136+ rear_port = new_param .pop ("rear_port" , None )
137+ if rear_port is not None :
138+ port_mapping_params = {
139+ "rear_port" : rear_port ,
140+ "rear_port_position" : new_param .pop ("rear_port_position" , 1 ),
141+ "front_port_position" : new_param .pop ("front_port_position" , 1 ),
142+ "device_type" : device_type ,
143+ }
144+
132145 new_matching_params , new_defaults = self .split_params (new_param , c_match_params )
133146 new_obj , new_obj_created = c_model .objects .get_or_create (
134147 ** new_matching_params , defaults = new_defaults
@@ -138,5 +151,13 @@ def load_data(self):
138151 f"🧷 Created { c_model ._meta } { new_obj } component for device type { device_type } "
139152 )
140153
154+ if port_mapping_params :
155+ front_port_position = port_mapping_params .pop ("front_port_position" )
156+ PortTemplateMapping .objects .get_or_create (
157+ front_port = new_obj ,
158+ front_port_position = front_port_position ,
159+ defaults = port_mapping_params ,
160+ )
161+
141162
142163register_initializer ("device_types" , DeviceTypeInitializer )
0 commit comments