From 9b25b0d3476539aa0bf8e79f10b4a79d7d3ea47e Mon Sep 17 00:00:00 2001 From: Sergi Almacellas Abellana Date: Fri, 8 Jul 2016 09:23:48 +0200 Subject: [PATCH] Ensure all values are set before resolving default_get issue5681 review26471002 --- src/model.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/model.js b/src/model.js index bb92dd5ebe..f6f7daffa9 100644 --- a/src/model.js +++ b/src/model.js @@ -775,6 +775,14 @@ default_get: function() { var dfd = jQuery.Deferred(); var promises = []; + // Ensure promisses is filled before default_get is resolved + for (var fname in this.model.fields) { + var field = this.model.fields[fname]; + if (field.description.autocomplete && + field.description.autocomplete.length > 0) { + promises.push(this.do_autocomplete(fname)); + } + } if (!jQuery.isEmptyObject(this.model.fields)) { var prm = this.model.execute('default_get', [Object.keys(this.model.fields)], this.get_context()); @@ -793,19 +801,12 @@ this.group.parent.id; } } - this.set_default(values); + promises.push(this.set_default(values)); jQuery.when.apply(jQuery, promises).then(function() { dfd.resolve(values); }); }.bind(this)); } - for (var fname in this.model.fields) { - var field = this.model.fields[fname]; - if (field.description.autocomplete && - field.description.autocomplete.length > 0) { - promises.push(this.do_autocomplete(fname)); - } - } return dfd; }, set_default: function(values, validate) {