From 66f71407f2c838dd2d88c90ebd0b8d5fe16f7c5d Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 8 Nov 2011 17:58:17 +0100 Subject: [PATCH] [FIX] Fixed kanban aggregates. Added kanban_states support. Added colors bzr revid: fme@openerp.com-20111108165817-0ae7bp7ulfv3pn3d --- addons/web_kanban/static/src/css/kanban.css | 12 ++++++-- addons/web_kanban/static/src/js/kanban.js | 32 ++++++++++++--------- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/addons/web_kanban/static/src/css/kanban.css b/addons/web_kanban/static/src/css/kanban.css index 6c6ddd57dec..86818f6541c 100644 --- a/addons/web_kanban/static/src/css/kanban.css +++ b/addons/web_kanban/static/src/css/kanban.css @@ -278,12 +278,18 @@ border-color: #D979C1; } -/* Alert color */ -.openerp .oe_kanban_color_alert .oe_kanban_color_border { +/* Red border */ +.openerp .oe_kanban_color_alert .oe_kanban_color_border, +.openerp .oe_kanban_color_red .oe_kanban_color_border { border-color: #c00 !important; } -/* Green color */ +/* Green border */ .openerp .oe_kanban_color_green .oe_kanban_color_border { border-color: #0c0 !important; } + +/* Blue border */ +.openerp .oe_kanban_color_blue .oe_kanban_color_border { + border-color: #00c !important; +} diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index c43ea503841..b2d5dcadc25 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -52,17 +52,8 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({ this.has_been_loaded.resolve(); }, add_qweb_template: function() { - var group_operator = ['avg', 'max', 'min', 'sum', 'count'] for (var i=0, ii=this.fields_view.arch.children.length; i < ii; i++) { var child = this.fields_view.arch.children[i]; - if (child.tag === "field") { - for(j=0, jj=group_operator.length; j < jj; j++) { - if (child.attrs[group_operator[j]]) { - this.aggregates[child.attrs.name] = child.attrs[group_operator[j]]; - break; - } - } - } if (child.tag === "templates") { this.transform_qweb_template(child); this.qweb.add_template(openerp.web.json_node_to_xml(child)); @@ -71,18 +62,25 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({ } }, transform_qweb_template: function(node) { - var qweb_prefix = QWeb.prefix; + var qweb_prefix = QWeb.prefix, + group_operator = ['avg', 'max', 'min', 'sum', 'count']; switch (node.tag) { case 'field': - node.tag = 't'; - node.attrs['t-esc'] = 'record.' + node.attrs['name'] + '.value'; + node.tag = qweb_prefix; + node.attrs[qweb_prefix + '-esc'] = 'record.' + node.attrs['name'] + '.value'; + for (var j = 0, jj = group_operator.length; j < jj; j++) { + if (node.attrs[group_operator[j]]) { + this.aggregates[node.attrs.name] = node.attrs[group_operator[j]]; + break; + } + } break case 'button': case 'a': var type = node.attrs.type || ''; if (_.indexOf('action,object,edit,delete,color'.split(','), type) !== -1) { _.each(node.attrs, function(v, k) { - if (_.indexOf('icon,type,name,string,context,states'.split(','), k) != -1) { + if (_.indexOf('icon,type,name,string,context,states,kanban_states'.split(','), k) != -1) { node.attrs['data-' + k] = v; delete(node.attrs[k]); } @@ -91,7 +89,13 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({ var states = _.map(node.attrs['data-states'].split(','), function(state) { return "record.state.raw_value == '" + _.trim(state) + "'"; }); - node.attrs['t-if'] = states.join(' or '); + node.attrs[qweb_prefix + '-if'] = states.join(' or '); + } + if (node.attrs['data-kanban_states']) { + var states = _.map(node.attrs['data-kanban_states'].split(','), function(state) { + return "record.kanban_state.raw_value == '" + _.trim(state) + "'"; + }); + node.attrs[qweb_prefix + '-if'] = states.join(' or '); } if (node.attrs['data-string']) { node.attrs.title = node.attrs['data-string'];