diff options
| author | Martin Geubelle <mge@odoo.com> | 2017-08-02 13:32:36 +0200 |
|---|---|---|
| committer | Martin Geubelle <mge@odoo.com> | 2017-08-03 11:11:45 +0200 |
| commit | d19671f0d0ff7189055cbe0794afed32f8a387e6 (patch) | |
| tree | 09aff2d7ee4a0f6712ed6a1742301556e76ab60a /addons/web/static/src/js/fields | |
| parent | b724662401cfe5115d67b670a796e5050483265a (diff) | |
[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.
Diffstat (limited to 'addons/web/static/src/js/fields')
| -rw-r--r-- | addons/web/static/src/js/fields/relational_fields.js | 14 |
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 |
