From 574ca75ab6fa583aabc0c1cfc65206e72864e546 Mon Sep 17 00:00:00 2001 From: Denis Ledoux Date: Mon, 16 May 2022 14:28:13 +0000 Subject: [PATCH] [FIX] models.py: do not propagate `view_ref` context When fetching the views of a one2many/many2many fields in a form view, do not propagate the context keys `form_view_ref`, `tree_view_ref`, ... It was supposed to be already handled, but the keys were not removed when the arg `view_id` is passed to `_get_view`. closes odoo/odoo#91489 Signed-off-by: Denis Ledoux (dle) --- odoo/addons/base/models/ir_ui_view.py | 7 +++++-- odoo/addons/base/tests/test_views.py | 25 +++++++++++++++++++++++++ odoo/models.py | 5 ----- 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/odoo/addons/base/models/ir_ui_view.py b/odoo/addons/base/models/ir_ui_view.py index 28bf9b07475..094de41a9e7 100644 --- a/odoo/addons/base/models/ir_ui_view.py +++ b/odoo/addons/base/models/ir_ui_view.py @@ -1182,8 +1182,11 @@ actual arch. if missing_view_types: comodel = self.env[field.comodel_name].sudo(False) refs = self._get_view_refs(node) - if refs: - comodel = comodel.with_context(**refs) + # Do not propagate _view_ref of parent call to `_get_view` + comodel = comodel.with_context(**{ + f'{view_type}_view_ref': refs.get(f'{view_type}_view_ref') + for view_type in missing_view_types + }) for view_type in missing_view_types: subarch, _subview = comodel._get_view(view_type=view_type) node.append(subarch) diff --git a/odoo/addons/base/tests/test_views.py b/odoo/addons/base/tests/test_views.py index 74bd758eafa..cb5b91298e2 100644 --- a/odoo/addons/base/tests/test_views.py +++ b/odoo/addons/base/tests/test_views.py @@ -2343,6 +2343,31 @@ class TestViews(ViewCase): 'A can only contains nodes, found a