From 082ca41f1c3937ab40444675e8952980f11a23f3 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Thu, 13 Dec 2012 15:38:49 +0100 Subject: [PATCH] [FIX] when clicking too fast on root menu items, exceptions are thrown randomly lp bug: https://launchpad.net/bugs/1088924 fixed bzr revid: nicolas.vanhoren@openerp.com-20121213143849-4n3qppvu9g9tarae --- addons/web/static/src/js/views.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index 2fe51bcf7e4..92f66849fec 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -467,6 +467,7 @@ instance.web.ViewManager = instance.web.Widget.extend({ this.flags = flags || {}; this.registry = instance.web.views; this.views_history = []; + this.view_completely_inited = $.Deferred(); }, /** * @returns {jQuery.Deferred} initial view loading promise @@ -586,6 +587,8 @@ instance.web.ViewManager = instance.web.Widget.extend({ && self.flags.auto_search && view.controller.searchable !== false) { self.searchview.ready.done(self.searchview.do_search); + } else { + self.view_completely_inited.resolve(); } self.trigger("controller_inited",view_type,controller); }); @@ -700,7 +703,9 @@ instance.web.ViewManager = instance.web.Widget.extend({ if (_.isString(groupby)) { groupby = [groupby]; } - controller.do_search(results.domain, results.context, groupby || []); + $.when(controller.do_search(results.domain, results.context, groupby || [])).then(function() { + self.view_completely_inited.resolve(); + }); }); }, /** @@ -782,7 +787,7 @@ instance.web.ViewManagerAction = instance.web.ViewManager.extend({ var main_view_loaded = this._super(); - var manager_ready = $.when(searchview_loaded, main_view_loaded); + var manager_ready = $.when(searchview_loaded, main_view_loaded, this.view_completely_inited); this.$el.find('.oe_debug_view').change(this.on_debug_changed); this.$el.addClass("oe_view_manager_" + (this.action.target || 'current'));