@@ -25,11 +25,11 @@ def default_get(self, fields):
25
25
res = super ().default_get (fields )
26
26
server_action_id = self .env .context .get ("server_action_id" )
27
27
server_action = self .env ["ir.actions.server" ].sudo ().browse (server_action_id )
28
+ active_ids = self .env .context .get ("active_ids" )
28
29
29
30
if not server_action :
30
31
return res
31
32
32
- active_ids = self .env .context .get ("active_ids" ) or self .env ["ir.actions.server" ]
33
33
original_active_ids = self .env .context .get ("original_active_ids" , active_ids )
34
34
operation_description_info = False
35
35
operation_description_warning = False
@@ -121,7 +121,7 @@ def _prepare_fields(self, line, field, field_info):
121
121
if field .ttype == "many2many" :
122
122
selection = [
123
123
("ignore" , _ ("Don't touch" )),
124
- ("set " , _ ("Set" )),
124
+ ("set_m2m " , _ ("Set" )),
125
125
("remove_m2m" , _ ("Remove" )),
126
126
("add" , _ ("Add" )),
127
127
]
@@ -181,9 +181,9 @@ def _insert_field_in_arch(self, line, field, main_xml_group):
181
181
dummy , tree_view = comodel ._get_view (view_type = "tree" )
182
182
field_context = {}
183
183
if form_view :
184
- field_context ["form_view_ref" ] = form_view .id
184
+ field_context ["form_view_ref" ] = form_view .xml_id
185
185
if tree_view :
186
- field_context ["tree_view_ref" ] = tree_view .id
186
+ field_context ["tree_view_ref" ] = tree_view .xml_id
187
187
if field_context :
188
188
field_element .attrib ["context" ] = json .dumps (field_context )
189
189
else :
@@ -204,9 +204,7 @@ def _insert_field_in_arch(self, line, field, main_xml_group):
204
204
def _get_field_options (self , field ):
205
205
return {
206
206
"name" : field .name ,
207
- "modifiers" : '{"invisible": "\
208
- "[["selection__%s", "in", ["ignore", "remove"]]]}'
209
- % field .name ,
207
+ "invisible" : 'selection__%s in ["ignore", "remove", False]' % field .name ,
210
208
"class" : "w-75" ,
211
209
}
212
210
@@ -284,11 +282,9 @@ def create(self, vals_list):
284
282
if key .startswith ("selection_" ):
285
283
split_key = key .split ("__" , 1 )[1 ]
286
284
if val == "set" or val == "add_o2m" :
287
- if val == "set" :
288
- vals [split_key ] = vals [split_key ][0 ][1 :]
289
285
values .update ({split_key : vals .get (split_key , False )})
290
286
291
- elif val == "set_o2m" :
287
+ elif val == "set_o2m" or val == "set_m2m" :
292
288
values .update (
293
289
{split_key : [(6 , 0 , [])] + vals .get (split_key , [])}
294
290
)
@@ -299,19 +295,15 @@ def create(self, vals_list):
299
295
elif val == "remove_m2m" :
300
296
m2m_list = []
301
297
if vals .get (split_key ):
302
- vals [split_key ][0 ] = vals [split_key ][0 ][1 :]
303
- for m2m_id in vals .get (split_key , False )[0 ]:
304
- m2m_list .append ((3 , m2m_id ))
298
+ for m2m_id in vals .get (split_key , False ):
299
+ m2m_list .append ((3 , m2m_id [1 ]))
305
300
if m2m_list :
306
301
values .update ({split_key : m2m_list })
307
302
else :
308
303
values .update ({split_key : [(5 , 0 , [])]})
309
304
310
305
elif val == "add" :
311
- m2m_list = []
312
- for m2m_id in vals .get (split_key , False ):
313
- m2m_list .append (m2m_id )
314
- values .update ({split_key : m2m_list })
306
+ values .update ({split_key : vals .get (split_key , False )})
315
307
316
308
if values :
317
309
self .env [server_action .model_id .model ].browse (
0 commit comments