summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/views/basic/basic_model.js
diff options
context:
space:
mode:
authorGéry Debongnie <ged@odoo.com>2017-08-24 09:57:02 +0200
committerGéry Debongnie <ged@odoo.com>2017-08-24 10:58:28 +0200
commitc0247e6a8d6057710908be941dec6a846c31cd28 (patch)
treeddf641feb07c994ae1350ee1c861ebe1150057d7 /addons/web/static/src/js/views/basic/basic_model.js
parent04470b811231eabab9ed4a7ed147882b16585e9c (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.js3
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;
}
});