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) {