From 6021f031e58ddca3bf8386defa74c1a3b39c199c Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Fri, 19 Jul 2013 17:46:04 +0200 Subject: [PATCH] [IMP] Added possibility to customize the tipsy of kanban groups in kanban views bzr revid: nicolas.vanhoren@openerp.com-20130719154604-vgr3wtn6xm1ezywg --- addons/web_kanban/static/src/js/kanban.js | 38 +++++++++++++++++++++-- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index 0600f68b94b..6f47f9c128d 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -574,8 +574,7 @@ instance.web_kanban.KanbanGroup = instance.web.Widget.extend({ }); }, start: function() { - var self = this, - def = this._super(); + var self = this; if (! self.view.group_by) { self.$el.addClass("oe_kanban_no_group"); self.quick = new (get_class(self.view.quick_create_class))(this, self.dataset, {}, false) @@ -632,7 +631,40 @@ instance.web_kanban.KanbanGroup = instance.web.Widget.extend({ } }); this.is_started = true; - return def; + var def_tooltip = this.fetch_tooltip(); + return $.when(def_tooltip); + }, + fetch_tooltip: function() { + if (! this.group) + return; + var field_name = this.view.group_by; + var field = this.view.group_by_field; + var field_desc = null; + var recurse = function(node) { + if (node.tag === "field" && node.attrs.name === field_name) { + field_desc = node; + return; + } + _.each(node.children, function(child) { + if (field_desc === null) + recurse(child); + }); + }; + recurse(this.view.fields_view.arch); + if (! field_desc) + return; + var options = instance.web.py_eval(field_desc.attrs.options || '{}') + if (! options.tooltip_on_group_by) + return; + + var self = this; + if (this.value) { + return (new instance.web.Model(field.relation)).query([options.tooltip_on_group_by]) + .filter([["id", "=", this.value]]).first().then(function(res) { + self.tooltip = res[options.tooltip_on_group_by]; + self.$(".oe_kanban_group_title_text").attr("title", self.tooltip || self.title || "").tipsy({html: true}); + }); + } }, compute_cards_auto_height: function() { // oe_kanban_no_auto_height is an empty class used to disable this feature