From f6c104d2e55baa11a9316861e7f4f10784c6f093 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9ry=20Debongnie?= Date: Fri, 30 Nov 2018 08:13:48 +0000 Subject: [IMP] web: do not eval modifiers if not necessary Before this commit, the web client evaluated all modifiers (readonly/invisible/required) in some cases, even if it only needed one of them. This is clearly not optimal, and I even suppose that for large o2m, it could even have a noticeable effect on web client perceived speed This commit simply make sure that we evaluate only what we need in those cases. Note that it is not really a testable improvement, hence the lack of tests. closes odoo/odoo#29171 --- addons/web/static/src/js/views/basic/basic_model.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'addons/web/static/src/js/views/basic/basic_model.js') diff --git a/addons/web/static/src/js/views/basic/basic_model.js b/addons/web/static/src/js/views/basic/basic_model.js index 53aa2e56c5a..f92bf7b6778 100644 --- a/addons/web/static/src/js/views/basic/basic_model.js +++ b/addons/web/static/src/js/views/basic/basic_model.js @@ -3507,7 +3507,7 @@ var BasicModel = AbstractModel.extend({ (record.fieldsInfo[viewType || record.viewType][fieldName]); if (fieldInfo) { var rawModifiers = fieldInfo.modifiers || {}; - var modifiers = this._evalModifiers(record, rawModifiers); + var modifiers = this._evalModifiers(record, _.pick(rawModifiers, 'readonly')); return modifiers.readonly && !fieldInfo.force_save; } else { return false; @@ -3559,7 +3559,7 @@ var BasicModel = AbstractModel.extend({ var field = element.fields[fieldName]; var fieldInfo = element.fieldsInfo[element.viewType][fieldName]; var rawModifiers = fieldInfo.modifiers || {}; - var modifiers = self._evalModifiers(record, rawModifiers); + var modifiers = self._evalModifiers(record, _.pick(rawModifiers, 'required')); if (modifiers.required && !self._isFieldSet(recordData[fieldName], field.type)) { isValid = false; } -- cgit v1.2.3