From 998ef1f63af529bc0e46602aa4e89057ef00069b Mon Sep 17 00:00:00 2001 From: Mathieu Duckerts-Antoine Date: Wed, 25 Oct 2023 13:04:53 +0200 Subject: [PATCH] [IMP] tools: ignore set in view expressions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now that some field attributes like invisible are given by Python expressions and that those can involve some set operations, we have to ensure that the views can be validated if they use such operations. We do that and add a test. closes odoo/odoo#139451 Signed-off-by: Géry Debongnie --- odoo/addons/base/tests/test_views.py | 4 ++++ odoo/tools/view_validation.py | 1 + 2 files changed, 5 insertions(+) diff --git a/odoo/addons/base/tests/test_views.py b/odoo/addons/base/tests/test_views.py index f3ae08c67ff..272586ba4db 100644 --- a/odoo/addons/base/tests/test_views.py +++ b/odoo/addons/base/tests/test_views.py @@ -3930,6 +3930,10 @@ class TestValidationTools(common.BaseCase): view_validation.get_expression_field_names("(datetime.datetime.combine(context_today(), datetime.time(x,y,z)).to_utc()).strftime('%Y-%m-%d %H:%M:%S')"), {'x', 'y', 'z'}, ) + self.assertEqual( + view_validation.get_expression_field_names("set(field).intersection([1, 2])"), + {'field'}, + ) class TestAccessRights(common.TransactionCase): diff --git a/odoo/tools/view_validation.py b/odoo/tools/view_validation.py index 410f016532a..4279ce4d505 100644 --- a/odoo/tools/view_validation.py +++ b/odoo/tools/view_validation.py @@ -39,6 +39,7 @@ IGNORED_IN_EXPRESSION = { 'float', 'str', 'unicode', + 'set', }