From 7fca29b44300dd8c6e2e1b7ba9ed0b6df419a95d Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Mon, 29 Mar 2021 08:00:05 +0000 Subject: [PATCH] [FIX] base: useless view validations when validate=False When a view is created/modified, it is required to validate it, the validation checks the syntax, the inheritances, the fields, etc. When a view is rendered there are a few more steps to perform like to (dis)able the `edit` button from a view form if the user only have `read` accesses. Those postprocess are useless when the view is validated and should only be performed when the view is rendered. closes odoo/odoo#68469 Signed-off-by: Julien Castiaux --- odoo/addons/base/models/ir_ui_view.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/odoo/addons/base/models/ir_ui_view.py b/odoo/addons/base/models/ir_ui_view.py index e8684cc1031..fadd9ace57f 100644 --- a/odoo/addons/base/models/ir_ui_view.py +++ b/odoo/addons/base/models/ir_ui_view.py @@ -952,7 +952,9 @@ actual arch. if model not in self.env: self.handle_view_error(_('Model not found: %(model)s', model=model), node) - self._postprocess_on_change(model, node) + if not validate: + # validation mode does not care about on_change + self._postprocess_on_change(model, node) name_manager = NameManager(validate, self.env[model]) self.postprocess(node, [], editable, name_manager) @@ -960,7 +962,9 @@ actual arch. name_manager.check_view_fields(self) name_manager.update_view_fields() - self._postprocess_access_rights(model, node) + if not validate: + # validation mode does not care about access rights + self._postprocess_access_rights(model, node) return etree.tostring(node, encoding="unicode").replace('\t', ''), name_manager