diff --git a/odoo/addons/base/ir/ir_ui_view.py b/odoo/addons/base/ir/ir_ui_view.py index f181b1786b2..40df3341055 100644 --- a/odoo/addons/base/ir/ir_ui_view.py +++ b/odoo/addons/base/ir/ir_ui_view.py @@ -127,6 +127,13 @@ def get_view_arch_from_file(filename, xmlid): if node.tag in ('template', 'record'): if node.tag == 'record': field = node.find('field[@name="arch"]') + if field is None: + if node.find('field[@name="view_id"]') is not None: + view_id = node.find('field[@name="view_id"]').attrib.get('ref') + ref_id = '%s%s' % ('.' not in view_id and xmlid.split('.')[0] + '.' or '', view_id) + return get_view_arch_from_file(filename, ref_id) + else: + return None _fix_multiple_roots(field) inner = u''.join([etree.tostring(child, encoding='unicode') for child in field.iterchildren()]) return field.text + inner