diff options
| author | Christophe Simonis <chs@odoo.com> | 2016-07-25 17:17:15 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2016-07-25 17:17:15 +0200 |
| commit | cfb0c0deadae316d9bbcae4d6d177a75f3dbbce4 (patch) | |
| tree | 961774158c47e97694ec1093f947262beaa0eef1 /openerp/tools | |
| parent | 77d231546d252c3f83d54c18d75864a15bc09b24 (diff) | |
| parent | 7ae5121877aec43a19a447b9b9d6a37f4a5633c2 (diff) | |
[MERGE] forward port branch saas-11 up to 7ae5121
Diffstat (limited to 'openerp/tools')
| -rw-r--r-- | openerp/tools/convert.py | 16 | ||||
| -rw-r--r-- | openerp/tools/yaml_import.py | 34 |
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): """ |
