diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index df194e9f844..46173341361 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -217,8 +217,7 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({ }, on_record_saved: function(r) { var id = this.form_dialog.form.datarecord.id; - // TODO fme: reload record instead of all. need refactoring - this.do_actual_search(); + this.on_reload_record(id); }, do_change_color: function(record_id, $e) { var self = this, @@ -236,8 +235,7 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({ var data = {}; data[$e.data('name')] = $(this).data('color'); self.dataset.write(id, data, {}, function() { - // TODO fme: reload record instead of all. need refactoring - self.on_reload_record(id, data); + self.on_reload_record(id); }); $cpicker.remove(); }); @@ -245,28 +243,32 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({ /** Reload one record in view. record_id : reload record id. - data : change value in particular record. */ - on_reload_record: function (record_id, data){ + on_reload_record: function (record_id){ var self = this; - for (var i=0, ii=this.all_display_data.length; i < ii; i++) { - for(j=0, jj=this.all_display_data[i].records.length; j < jj; j++) { - if (this.all_display_data[i].records[j].id == record_id) { - _.extend(this.all_display_data[i].records[j], data); - this.$element.find("#main_" + record_id).children().remove(); - this.$element.find("#main_" + record_id).append(this.qweb.render('kanban-box', { - record: this.do_transform_record(this.all_display_data[i].records[j]), - kanban_color: this.kanban_color, - kanban_gravatar: this.kanban_gravatar - })); - break; + this.dataset.read_ids([record_id], [], function (records) { + if (records.length > 0) { + for (var i=0, ii=self.all_display_data.length; i < ii; i++) { + for(j=0, jj=self.all_display_data[i].records.length; j < jj; j++) { + if (self.all_display_data[i].records[j].id == record_id) { + _.extend(self.all_display_data[i].records[j], records[0]); + self.$element.find("#main_" + record_id).children().remove(); + self.$element.find("#main_" + record_id).append(self.qweb.render('kanban-box', { + record: self.do_transform_record(self.all_display_data[i].records[j]), + kanban_color: self.kanban_color, + kanban_gravatar: self.kanban_gravatar + })); + break; + } + } } + self.$element.find("#main_" + record_id + " .oe_kanban_action").click(self.on_action_clicked); + self.$element.find("#main_" + record_id + " .oe_kanban_box_show_onclick_trigger").click(function() { + $(this).parent("#main_" + record_id + " .oe_kanban_box").find(".oe_kanban_box_show_onclick").toggle(); + }); } - } - this.$element.find("#main_" + record_id + " .oe_kanban_action").click(this.on_action_clicked); - this.$element.find("#main_" + record_id + " .oe_kanban_box_show_onclick_trigger").click(function() { - $(this).parent("#main_" + record_id + " .oe_kanban_box").find(".oe_kanban_box_show_onclick").toggle(); }); + }, do_delete: function (id) { var self = this; @@ -304,7 +306,6 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({ if (!ui.item.attr("id")) { return false; } - // TODO fme: check what was this sequence if (self.fields_view.fields.sequence != undefined && ((self.source_index.index >= 0 && self.source_index.index != from) || (self.source_index.column && self.source_index.column != ui.item.parent().attr('id')))) { var child_record = ui.item.parent().children(); diff --git a/addons/web_kanban/static/src/xml/web_kanban.xml b/addons/web_kanban/static/src/xml/web_kanban.xml index 4c98f42f8fe..8f3aaf457e9 100644 --- a/addons/web_kanban/static/src/xml/web_kanban.xml +++ b/addons/web_kanban/static/src/xml/web_kanban.xml @@ -11,17 +11,19 @@