[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.
This commit is contained in:
Martin Geubelle
2018-08-13 17:09:28 +02:00
committed by Christophe Matthieu
parent ede9960a78
commit 9a98a4d60e
2 changed files with 3 additions and 2 deletions
+1 -1
View File
@@ -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?)
+2 -1
View File
@@ -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. """