summaryrefslogtreecommitdiff
path: root/addons/web_graph/static/src
diff options
context:
space:
mode:
authorNicolas Martinelli <nim@odoo.com>2015-09-28 17:45:37 +0200
committerNicolas Martinelli <nim@odoo.com>2015-09-29 08:33:36 +0200
commite11f50599dd5d6f5d1358a58f0fa3f7269aab12d (patch)
tree740a12a1bdb3081c750ab71ec8aaea328cbb6982 /addons/web_graph/static/src
parent100529995558bdb4fc3679efa25088dbfee2530c (diff)
[FIX] web_graph: duplicates header in pivot
For report with duplicated named headers, several columns could get squashed together. This fix check if a value is a duplicate or not, and if it is a duplicates postfix an number allowing to differentiate the two headers (for the human and the javascript). This is the exact same solution than #6722 Backport of 5cff8fbb7c70a372cb5116c2fb98fd622c4d4358 opw-650000
Diffstat (limited to 'addons/web_graph/static/src')
-rw-r--r--addons/web_graph/static/src/js/pivot_table.js15
1 files changed, 13 insertions, 2 deletions
diff --git a/addons/web_graph/static/src/js/pivot_table.js b/addons/web_graph/static/src/js/pivot_table.js
index a99bae1756f..15383af0930 100644
--- a/addons/web_graph/static/src/js/pivot_table.js
+++ b/addons/web_graph/static/src/js/pivot_table.js
@@ -22,6 +22,7 @@ openerp.web_graph.PivotTable = openerp.web.Class.extend({
this.measures = options.measures || [];
this.rows = { groupby: options.row_groupby, headers: null };
this.cols = { groupby: options.col_groupby, headers: null };
+ this.numbering = {};
},
// ----------------------------------------------------------------------
@@ -434,10 +435,10 @@ openerp.web_graph.PivotTable = openerp.web.Class.extend({
if (attrs.value[i] === false) {
return _t('Undefined');
} else if (attrs.value[i] instanceof Array) {
- return attrs.value[i][1];
+ return self.get_numbered_value(attrs.value[i], grp);
} else if (field && field.type === 'selection') {
var selected = _.where(field.selection, {0: attrs.value[i]})[0];
- return selected ? selected[1] : attrs.value[i];
+ return selected ? self.get_numbered_value(selected, grp) : attrs.value[i];
}
return attrs.value[i];
});
@@ -448,6 +449,16 @@ openerp.web_graph.PivotTable = openerp.web.Class.extend({
});
},
+ get_numbered_value: function(value, grp) {
+ var id = value[0];
+ var name = value[1]
+ this.numbering[grp] = this.numbering[grp] || {};
+ this.numbering[grp][name] = this.numbering[grp][name] || {};
+ var numbers = this.numbering[grp][name];
+ numbers[id] = numbers[id] || _.size(numbers) + 1;
+ return name + (numbers[id] > 1 ? " (" + numbers[id] + ")" : "");
+ },
+
// if field is a fieldname, returns field, if field is field_id:interval, retuns field_id
raw_field: function (field) {
return field.split(':')[0];