summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Geubelle <mge@odoo.com>2018-08-13 15:01:22 +0200
committerChristophe Matthieu <chm@odoo.com>2018-08-13 17:09:28 +0200
commit9a98a4d60e36ea7d9f29ea52a1524501ebff84de (patch)
treed34babdb38491d02f468f46c8533deaaff0a5722
parentede9960a7865f5b5d320be143fae59c660080119 (diff)
[IMP] base: search template view based on `key` in addition to xml_id
In Studio, users can create views, reports, etc. which do not have an xml_id (no record in 'ir.model.data' from import/install). After this modification, the template can use the t-call using a readable key on newly created views.
-rw-r--r--addons/web_editor/models/ir_ui_view.py2
-rw-r--r--odoo/addons/base/models/ir_ui_view.py3
2 files changed, 3 insertions, 2 deletions
diff --git a/addons/web_editor/models/ir_ui_view.py b/addons/web_editor/models/ir_ui_view.py
index 37228224971..612abc1596a 100644
--- a/addons/web_editor/models/ir_ui_view.py
+++ b/addons/web_editor/models/ir_ui_view.py
@@ -128,7 +128,7 @@ class IrUiView(models.Model):
@api.model
def _view_obj(self, view_id):
if isinstance(view_id, pycompat.string_types):
- return self.env.ref(view_id)
+ return self.search([('key', '=', view_id)]) or self.env.ref(view_id)
elif isinstance(view_id, pycompat.integer_types):
return self.browse(view_id)
# assume it's already a view object (WTF?)
diff --git a/odoo/addons/base/models/ir_ui_view.py b/odoo/addons/base/models/ir_ui_view.py
index 569c33ac92b..11a8fdb9a12 100644
--- a/odoo/addons/base/models/ir_ui_view.py
+++ b/odoo/addons/base/models/ir_ui_view.py
@@ -1126,7 +1126,8 @@ actual arch.
return template
if '.' not in template:
raise ValueError('Invalid template id: %r' % template)
- return self.env['ir.model.data'].xmlid_to_res_id(template, raise_if_not_found=True)
+ view = self.search([('key', '=', template)])
+ return view and view.id or self.env['ir.model.data'].xmlid_to_res_id(template, raise_if_not_found=True)
def clear_cache(self):
""" Deprecated, use `clear_caches` instead. """