summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/views/basic/basic_model.js
diff options
context:
space:
mode:
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.js8
1 files changed, 7 insertions, 1 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 f93635618e3..9139906f982 100644
--- a/addons/web/static/src/js/views/basic/basic_model.js
+++ b/addons/web/static/src/js/views/basic/basic_model.js
@@ -770,6 +770,7 @@ var BasicModel = AbstractModel.extend({
var onchangeDef;
if (onChangeFields.length) {
onchangeDef = self._applyOnChange(record, onChangeFields).then(function (result) {
+ delete record._warning;
return _.keys(changes).concat(Object.keys(result && result.value || {}));
});
} else {
@@ -884,6 +885,7 @@ var BasicModel = AbstractModel.extend({
title: result.warning.title,
type: 'dialog',
});
+ record._warning = true;
}
var defs = [];
_.each(result.value, function (val, name) {
@@ -2045,7 +2047,11 @@ var BasicModel = AbstractModel.extend({
}
}
if (shouldApplyOnchange) {
- return self._applyOnChange(record, fields_key);
+ return self._applyOnChange(record, fields_key).then(function () {
+ if (record._warning) {
+ return $.Deferred().reject();
+ }
+ });
} else {
return $.when();
}