From d19671f0d0ff7189055cbe0794afed32f8a387e6 Mon Sep 17 00:00:00 2001 From: Martin Geubelle Date: Wed, 2 Aug 2017 13:32:36 +0200 Subject: [FIX] web: return a deferred in m2o quick create The rev. https://github.com/odoo/odoo/commit/99ae418bf24171fbc6bb27584059c27efb857e77 accidentally modified the `quickCreate` return value type, which was previously a deferred. This function is overriden in Studio to catch the deferred so the previous type has been restored. --- addons/web/static/src/js/fields/relational_fields.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'addons/web/static/src/js/fields/relational_fields.js') 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 -- cgit v1.2.3