diff options
| author | Géry Debongnie <ged@odoo.com> | 2017-08-24 09:57:02 +0200 |
|---|---|---|
| committer | Géry Debongnie <ged@odoo.com> | 2017-08-24 10:58:28 +0200 |
| commit | c0247e6a8d6057710908be941dec6a846c31cd28 (patch) | |
| tree | ddf641feb07c994ae1350ee1c861ebe1150057d7 /addons/web/static/src/js/views/basic/basic_model.js | |
| parent | 04470b811231eabab9ed4a7ed147882b16585e9c (diff) | |
[FIX] web: correct evaluation for x2many fields in onchanges
Before this commit, it could happen that a x2many field was considered
invalid, which prevent triggering onchanges, even though each of its
required fields are properly set. Here is such a scenario:
We have a one2many field something_ids in a form view, with an inline
tree view, which contains a field X. The field X is required on the
model, but marked required="0" in the inline view.
In that case, we incorrectly evaluated the required modifiers: since the
attrs did not contain the required attribute, we fell back on the
field_get value, which is true in this case. But this is not correct,
the fieldviewget already computed the actual modifiers and took into
account the fact that it was overridden. We need to only look at the
modifiers.
Diffstat (limited to 'addons/web/static/src/js/views/basic/basic_model.js')
| -rw-r--r-- | addons/web/static/src/js/views/basic/basic_model.js | 3 |
1 files changed, 1 insertions, 2 deletions
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 0d95c292070..d54f609f002 100644 --- a/addons/web/static/src/js/views/basic/basic_model.js +++ b/addons/web/static/src/js/views/basic/basic_model.js @@ -2738,8 +2738,7 @@ var BasicModel = AbstractModel.extend({ var fieldInfo = element.fieldsInfo[element.viewType][fieldName]; var rawModifiers = JSON.parse(fieldInfo.modifiers || "{}"); var modifiers = self._evalModifiers(record, rawModifiers); - var required = 'required' in modifiers ? modifiers.required : field.required; - if (required && !self._isFieldSet(recordData[fieldName], field.type)) { + if (modifiers.required && !self._isFieldSet(recordData[fieldName], field.type)) { isValid = false; } }); |
