[IMP] Added possibility to customize the tipsy of kanban groups in kanban views
authorniv-openerp <nicolas.vanhoren@openerp.com>
Fri, 19 Jul 2013 15:46:04 +0000 (17:46 +0200)
committerniv-openerp <nicolas.vanhoren@openerp.com>
Fri, 19 Jul 2013 15:46:04 +0000 (17:46 +0200)
bzr revid: nicolas.vanhoren@openerp.com-20130719154604-vgr3wtn6xm1ezywg

addons/web_kanban/static/src/js/kanban.js

index 0600f68..6f47f9c 100644 (file)
@@ -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