From 564e609abe600a326ccf7715617d11988db856fe Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Mon, 24 Oct 2011 17:30:29 +0200 Subject: [PATCH] [IMP] Kanban: Groups order can be shuffled due to a race condition bzr revid: fme@openerp.com-20111024153029-yv9ezid4zn0lu7b6 --- addons/web_kanban/static/src/js/kanban.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index 82b085d9749..72df590fbf4 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -446,8 +446,9 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({ }, do_render_group : function (datagroups) { this.all_display_data = []; - var self = this; - _.each(datagroups, function (group) { + var self = this, + remaining = datagroups.length - 1; + _.each(datagroups, function (group, index) { var group_name = group.value; var group_value = group.value; if (!group.value) { @@ -462,10 +463,10 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({ group_aggregates[value] = group.aggregates[key]; }); var dataset = new openerp.web.DataSetSearch(self, self.dataset.model, group.context, group.domain); + self.$element.find(".oe_kanban_view").remove(); dataset.read_slice(_.keys(self.fields_view.fields), {'domain': group.domain, 'context': group.context}, function(records) { - self.all_display_data.push({"value" : group_value, "records": records, 'header':group_name, 'ids': dataset.ids, 'aggregates': group_aggregates}); - if (datagroups.length == self.all_display_data.length) { - self.$element.find(".oe_kanban_view").remove(); + self.all_display_data[index] = {"value" : group_value, "records" : records, 'header' : group_name, 'ids' : dataset.ids, 'aggregates' : group_aggregates}; + if (!remaining--) { self.on_show_data(); } });