summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/views/form_relational_widgets.js
diff options
context:
space:
mode:
authorChristophe Matthieu <chm@odoo.com>2015-05-26 16:51:09 +0200
committerChristophe Matthieu <chm@odoo.com>2015-05-26 16:51:09 +0200
commitb5ba4b4d705a7d29f8f36da16e7bf0ba6c655776 (patch)
tree860debf60781cd8cf5baaab159d7a7bfee2cdddd /addons/web/static/src/js/views/form_relational_widgets.js
parent6fe928a54b6aa39f46db5c38740aaf2d43b131ab (diff)
[FIX] web: form_relational_widgets.js: when a user create a line in a one2many field, the dataset_changed is triggered before the blur of the editable list. Some values (with required for eg) are not valid and the on_change is not triggered, change commit_value to wait the trigger and keep the deferred.
Diffstat (limited to 'addons/web/static/src/js/views/form_relational_widgets.js')
-rw-r--r--addons/web/static/src/js/views/form_relational_widgets.js12
1 files changed, 10 insertions, 2 deletions
diff --git a/addons/web/static/src/js/views/form_relational_widgets.js b/addons/web/static/src/js/views/form_relational_widgets.js
index cc326907f1a..a572e1b0ec6 100644
--- a/addons/web/static/src/js/views/form_relational_widgets.js
+++ b/addons/web/static/src/js/views/form_relational_widgets.js
@@ -883,7 +883,13 @@ var FieldOne2Many = AbstractManyField.extend({
commit_value: function() {
var view = this.get_active_view();
if (view && view.type === "list" && view.controller.__focus) {
- return view.controller._on_blur_one2many(true);
+ var def = $.Deferred();
+ view.controller._on_blur_one2many(true).always(function () {
+ setTimeout(function () {def.resolve();},0);
+ }, function () {
+ setTimeout(function () {def.reject();},0);
+ });
+ return def;
}
return $.when(false);
},
@@ -914,7 +920,9 @@ var One2ManyDataSet = data.BufferedDataSet.extend({
var self = this;
var def = this._super(data, options);
def.then(function (id) {
- self.trigger("dataset_changed", id, data, options);
+ setTimeout(function () {
+ self.trigger("dataset_changed", id, data, options);
+ },0);
});
return def;
},