summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/fields
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2017-08-10 17:01:05 +0200
committerChristophe Simonis <chs@odoo.com>2017-08-10 17:01:05 +0200
commit48b2ce60ed12b9b0f3aaa0322465504798bd154e (patch)
tree0ac2c53a78f678ad4701943eb9eab6a4c8f5ff48 /addons/web/static/src/js/fields
parent298eaca4d1e268c43185e9c1dd6d6973e02d9b57 (diff)
parent85571bb78c9acc4e867cc3b480be9236a756fc22 (diff)
[MERGE] forward port branch saas-16 up to 85571bb78c9
Diffstat (limited to 'addons/web/static/src/js/fields')
-rw-r--r--addons/web/static/src/js/fields/relational_fields.js14
1 files changed, 12 insertions, 2 deletions
diff --git a/addons/web/static/src/js/fields/relational_fields.js b/addons/web/static/src/js/fields/relational_fields.js
index 64049d8b1ec..0dce6ec2bb4 100644
--- a/addons/web/static/src/js/fields/relational_fields.js
+++ b/addons/web/static/src/js/fields/relational_fields.js
@@ -219,10 +219,16 @@ var FieldMany2One = AbstractField.extend({
/**
* @private
* @param {string} name
+ * @returns {Deferred} resolved after the name_create or when the slowcreate
+ * modal is closed.
*/
_quickCreate: function (name) {
var self = this;
- var slowCreate = this._searchCreatePopup.bind(this, "form", false, this._createContext(name));
+ var def = $.Deferred();
+ var slowCreate = function () {
+ var dialog = self._searchCreatePopup.bind(self, "form", false, self._createContext(name));
+ dialog.on('closed', self, def.resolve.bind(def));
+ };
if (this.nodeOptions.quick_create) {
this.trigger_up('mutexify', {
action: function () {
@@ -235,12 +241,16 @@ var FieldMany2One = AbstractField.extend({
if (self.mode === "edit") {
self.reinitialize({id: result[0], display_name: result[1]});
}
- }, slowCreate);
+ def.resolve();
+ }).fail(function () {
+ slowCreate();
+ });
},
});
} else {
slowCreate();
}
+ return def;
},
/**
* @private