summaryrefslogtreecommitdiff
path: root/openerp/tools
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2016-07-25 17:17:15 +0200
committerChristophe Simonis <chs@odoo.com>2016-07-25 17:17:15 +0200
commitcfb0c0deadae316d9bbcae4d6d177a75f3dbbce4 (patch)
tree961774158c47e97694ec1093f947262beaa0eef1 /openerp/tools
parent77d231546d252c3f83d54c18d75864a15bc09b24 (diff)
parent7ae5121877aec43a19a447b9b9d6a37f4a5633c2 (diff)
[MERGE] forward port branch saas-11 up to 7ae5121
Diffstat (limited to 'openerp/tools')
-rw-r--r--openerp/tools/convert.py16
-rw-r--r--openerp/tools/yaml_import.py34
2 files changed, 35 insertions, 15 deletions
diff --git a/openerp/tools/convert.py b/openerp/tools/convert.py
index 9c503bf8f24..3c687003cb3 100644
--- a/openerp/tools/convert.py
+++ b/openerp/tools/convert.py
@@ -441,10 +441,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.env['ir.model.data'].ir_set('action', keyword, xml_id, [src_model], value, replace=replace, isobject=True, xml_id=xml_id)
+ self.env['ir.values'].set_action(xml_id, action_slot=keyword, model=model, action=value, res_id=res_id)
# TODO add remove ir.model.data
def _tag_ir_set(self, rec, data_node=None, mode=None):
@@ -460,7 +464,15 @@ form: module.record_id""" % (xml_id,)
f_name = field.get("name",'').encode('utf-8')
f_val = _eval_xml(self, field, self.env)
res[f_name] = f_val
- self.env['ir.model.data'].ir_set(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(model, field_name=res['name'], value=res['value'], condition=res['key2'])
+ elif res['key'] == 'action':
+ ir_values.set_action(res['name'], action_slot=res['key2'], model=model, action=res['value'], res_id=res_id)
def _tag_workflow(self, rec, data_node=None, mode=None):
if self.isnoupdate(data_node) and self.mode != 'init':
diff --git a/openerp/tools/yaml_import.py b/openerp/tools/yaml_import.py
index 356b63076bb..b78fde496a6 100644
--- a/openerp/tools/yaml_import.py
+++ b/openerp/tools/yaml_import.py
@@ -770,9 +770,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.sudo_env['ir.model.data'].ir_set('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):
@@ -798,10 +800,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.sudo_env['ir.model.data'].ir_set('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':
@@ -814,9 +813,15 @@ class YamlInterpreter(object):
else:
value = expression
res[fieldname] = value
- self.sudo_env['ir.model.data'].ir_set(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 = {}
@@ -850,9 +855,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.sudo_env['ir.model.data'].ir_set('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):
"""