[IMP] web, openerp: Remove the function ir_set on model ir.model.data
The function ir_set is deprecated since 9.0 Refactorisation of load_actions_from_ir_values
This commit is contained in:
@@ -295,21 +295,10 @@ def set_cookie_and_redirect(redirect_url):
|
||||
redirect.autocorrect_location_header = False
|
||||
return redirect
|
||||
|
||||
def load_actions_from_ir_values(key, key2, models, meta):
|
||||
Values = request.session.model('ir.values')
|
||||
actions = []
|
||||
for model in models:
|
||||
res_id = False
|
||||
if isinstance(model, (list, tuple)):
|
||||
model, res_id = model
|
||||
if key == 'default':
|
||||
action = Values.get_defaults(model, condition=key2, context=request.context)
|
||||
elif key == 'action':
|
||||
action = Values.get_actions(action_slot=key2, model=model, res_id=res_id, context=request.context)
|
||||
actions.append(action)
|
||||
|
||||
return [(id, name, clean_action(action))
|
||||
for id, name, action in actions]
|
||||
def load_actions_from_ir_values(action_slot, model, res_id):
|
||||
ir_values = request.session.model('ir.values')
|
||||
actions = ir_values.get_actions(action_slot=action_slot, model=model, res_id=res_id, context=request.context)
|
||||
return [(id, name, clean_action(action)) for id, name, action in actions]
|
||||
|
||||
def clean_action(action):
|
||||
action.setdefault('flags', {})
|
||||
@@ -945,9 +934,7 @@ class TreeView(View):
|
||||
|
||||
@http.route('/web/treeview/action', type='json', auth="user")
|
||||
def action(self, model, id):
|
||||
return load_actions_from_ir_values(
|
||||
'action', 'tree_but_open',[(model, id)],
|
||||
False)
|
||||
return load_actions_from_ir_values('tree_but_open', model, id)
|
||||
|
||||
class Binary(http.Controller):
|
||||
|
||||
|
||||
@@ -1097,19 +1097,6 @@ class IrModelData(models.Model):
|
||||
|
||||
return record.id
|
||||
|
||||
@api.model
|
||||
def ir_set(self, key, key2, name, models, value, replace=True, isobject=False, meta=None, xml_id=False):
|
||||
ir_values = self.env['ir.values']
|
||||
for model in models:
|
||||
res_id = False
|
||||
if isinstance(model, (list, tuple)):
|
||||
model, res_id = model
|
||||
if key == 'default':
|
||||
ir_values.set_default(model, field_name=name, value=value, condition=key2)
|
||||
elif key == 'action':
|
||||
return ir_values.set_action(name, action_slot=key2, model=model, action=value, res_id=res_id)
|
||||
return True
|
||||
|
||||
@api.model
|
||||
def _module_data_uninstall(self, modules_to_remove):
|
||||
"""Deletes all the records referenced by the ir.model.data entries
|
||||
|
||||
@@ -453,10 +453,14 @@ form: module.record_id""" % (xml_id,)
|
||||
|
||||
if src_model:
|
||||
#keyword = 'client_action_relate'
|
||||
res_id = False
|
||||
model = src_model
|
||||
if isinstance(model, (list, tuple)):
|
||||
model, res_id = model
|
||||
keyword = rec.get('key2','').encode('utf-8') or 'client_action_relate'
|
||||
value = 'ir.actions.act_window,'+str(id)
|
||||
replace = rec.get('replace','') or True
|
||||
self.pool['ir.model.data'].ir_set(cr, self.uid, 'action', keyword, xml_id, [src_model], value, replace=replace, isobject=True, xml_id=xml_id)
|
||||
self.pool['ir.values'].set_action(cr, self.uid, xml_id, action_slot=keyword, model=model, action=value, res_id=res_id)
|
||||
# TODO add remove ir.model.data
|
||||
|
||||
def _tag_ir_set(self, cr, rec, data_node=None, mode=None):
|
||||
@@ -472,7 +476,15 @@ form: module.record_id""" % (xml_id,)
|
||||
f_name = field.get("name",'').encode('utf-8')
|
||||
f_val = _eval_xml(self,field,self.pool, cr, self.uid, self.idref)
|
||||
res[f_name] = f_val
|
||||
self.pool['ir.model.data'].ir_set(cr, self.uid, res['key'], res['key2'], res['name'], res['models'], res['value'], replace=res.get('replace',True), isobject=res.get('isobject', False), meta=res.get('meta',None))
|
||||
ir_values = self.env['ir.values']
|
||||
for model in res['models']:
|
||||
res_id = False
|
||||
if isinstance(model, (list, tuple)):
|
||||
model, res_id = model
|
||||
if res['key'] == 'default':
|
||||
ir_values.set_default(cr, self.uid, model, field_name=res['name'], value=res['value'], condition=res['key2'])
|
||||
elif res['key'] == 'action':
|
||||
ir_values.set_action(cr, self.uid, res['name'], action_slot=res['key2'], model=model, action=res['value'], res_id=res_id)
|
||||
|
||||
def _tag_workflow(self, cr, rec, data_node=None, mode=None):
|
||||
if self.isnoupdate(data_node) and self.mode != 'init':
|
||||
|
||||
@@ -779,9 +779,11 @@ class YamlInterpreter(object):
|
||||
if node.src_model:
|
||||
keyword = 'client_action_relate'
|
||||
value = 'ir.actions.act_window,%s' % id
|
||||
replace = node.replace or True
|
||||
self.pool['ir.model.data'].ir_set(self.cr, SUPERUSER_ID, 'action', keyword, \
|
||||
node.id, [node.src_model], value, replace=replace, noupdate=self.isnoupdate(node), isobject=True, xml_id=node.id)
|
||||
res_id = False
|
||||
model = node.src_model
|
||||
if isinstance(model, (list, tuple)):
|
||||
model, res_id = model
|
||||
self.env['ir.values'].sudo().set_action(node.id, action_slot=keyword, model=model, action=value, res_id=res_id)
|
||||
# TODO add remove ir.model.data
|
||||
|
||||
def process_delete(self, node):
|
||||
@@ -808,10 +810,7 @@ class YamlInterpreter(object):
|
||||
if (not node.menu or eval(node.menu)) and id:
|
||||
keyword = node.keyword or 'client_action_multi'
|
||||
value = 'ir.actions.act_url,%s' % id
|
||||
replace = node.replace or True
|
||||
self.pool['ir.model.data'].ir_set(self.cr, SUPERUSER_ID, 'action', \
|
||||
keyword, node.url, ["ir.actions.act_url"], value, replace=replace, \
|
||||
noupdate=self.isnoupdate(node), isobject=True, xml_id=node.id)
|
||||
self.env['ir.values'].sudo().set_action(node.url, action_slot=keyword, model="ir.actions.act_url", action=value, res_id=False)
|
||||
|
||||
def process_ir_set(self, node):
|
||||
if not self.mode == 'init':
|
||||
@@ -824,9 +823,15 @@ class YamlInterpreter(object):
|
||||
else:
|
||||
value = expression
|
||||
res[fieldname] = value
|
||||
self.pool['ir.model.data'].ir_set(self.cr, SUPERUSER_ID, res['key'], res['key2'], \
|
||||
res['name'], res['models'], res['value'], replace=res.get('replace',True), \
|
||||
isobject=res.get('isobject', False), meta=res.get('meta',None))
|
||||
ir_values = self.env['ir.values']
|
||||
for model in res['models']:
|
||||
res_id = False
|
||||
if isinstance(model, (list, tuple)):
|
||||
model, res_id = model
|
||||
if res['key'] == 'default':
|
||||
ir_values.sudo().set_default(model, field_name=res['name'], value=res['value'], condition=res['key2'])
|
||||
elif res['key'] == 'action':
|
||||
ir_values.sudo().set_action(res['name'], action_slot=res['key2'], model=model, action=res['value'], res_id=res_id)
|
||||
|
||||
def process_report(self, node):
|
||||
values = {}
|
||||
@@ -860,9 +865,12 @@ class YamlInterpreter(object):
|
||||
if not node.menu or eval(node.menu):
|
||||
keyword = node.keyword or 'client_print_multi'
|
||||
value = 'ir.actions.report.xml,%s' % id
|
||||
replace = node.replace or True
|
||||
self.pool['ir.model.data'].ir_set(self.cr, SUPERUSER_ID, 'action', \
|
||||
keyword, values['name'], [values['model']], value, replace=replace, isobject=True, xml_id=xml_id)
|
||||
ir_values = self.env['ir.values']
|
||||
res_id = False
|
||||
model = values['model']
|
||||
if isinstance(model, (list, tuple)):
|
||||
model, res_id = model
|
||||
ir_values.sudo().set_action(values['name'], action_slot=keyword, model=model, action=value, res_id=res_id)
|
||||
|
||||
def process_none(self):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user