From 0e597e8ef3bcbcd64316d532606841a1a45d3201 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 3 Aug 2011 13:06:15 +0200 Subject: [PATCH] [FIX] start() synchronization in group search widget Group did not propagate the result of start()ing its subwidgets to its caller (an other group or the searchview itself) => if it contained an async-starting widget (e.g. an m2o), the search view would not be able to wait for the async widget, and would consider itself 'intialized' before truly being so, leading to incorrect results in case of auto_search bzr revid: xmo@openerp.com-20110803110615-3ps3he9hza05h7q8 --- addons/base/static/src/js/search.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/base/static/src/js/search.js b/addons/base/static/src/js/search.js index 9c6550955f1..0a1f2396123 100644 --- a/addons/base/static/src/js/search.js +++ b/addons/base/static/src/js/search.js @@ -140,7 +140,7 @@ openerp.base.SearchView = openerp.base.Widget.extend({ var widget_starts = _(lines).chain().flatten().map(function (widget) { return widget.start(); }).value(); - + $.when.apply(null, widget_starts).then(function () { self.ready.resolve(); }); @@ -475,11 +475,11 @@ openerp.base.search.Group = openerp.base.search.Widget.extend({ }, start: function () { this._super(); - _(this.lines) - .chain() - .flatten() - .each(function (widget) { widget.start(); }); openerp.base.search.add_expand_listener(this.$element); + var widget_starts = _(this.lines).chain().flatten() + .map(function (widget) { return widget.start(); }) + .value(); + return $.when.apply(null, widget_starts); } }); @@ -779,7 +779,7 @@ openerp.base.search.OneToManyField = openerp.base.search.CharField.extend({ }); openerp.base.search.ManyToOneField = openerp.base.search.CharField.extend({ // TODO: @widget - // TODO: .relation, .selection, .context, .domain + // TODO: .selection, .context, .domain init: function (view_section, field, view) { this._super(view_section, field, view); var self = this;