summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/web/static/src/js/views/graph/graph_model.js1
-rw-r--r--addons/web/static/src/js/views/graph/graph_renderer.js13
2 files changed, 10 insertions, 4 deletions
diff --git a/addons/web/static/src/js/views/graph/graph_model.js b/addons/web/static/src/js/views/graph/graph_model.js
index 8dcb241ae9c..21614493e3c 100644
--- a/addons/web/static/src/js/views/graph/graph_model.js
+++ b/addons/web/static/src/js/views/graph/graph_model.js
@@ -242,6 +242,7 @@ return AbstractModel.extend({
value = 1;
}
self.chart.dataPoints.push({
+ resId: dataPt[self.chart.groupBy[0]] instanceof Array ? dataPt[self.chart.groupBy[0]][0] : -1,
count: count,
value: value,
labels: labels,
diff --git a/addons/web/static/src/js/views/graph/graph_renderer.js b/addons/web/static/src/js/views/graph/graph_renderer.js
index e83edbbbf04..cf6dba6e4c3 100644
--- a/addons/web/static/src/js/views/graph/graph_renderer.js
+++ b/addons/web/static/src/js/views/graph/graph_renderer.js
@@ -622,13 +622,19 @@ return AbstractRenderer.extend({
_prepareData: function (dataPoints) {
var self = this;
+ var labelMap = {};
var labels = dataPoints.reduce(
function (acc, dataPt) {
var label = self._getLabel(dataPt);
- var index = self._indexOf(acc, label);
- if (index === -1) {
+ var labelKey = dataPt.resId + ':' + JSON.stringify(label);
+ var index = labelMap[labelKey];
+ if (index === undefined) {
+ labelMap[labelKey] = dataPt.labelIndex = acc.length;
acc.push(label);
}
+ else{
+ dataPt.labelIndex = index;
+ }
return acc;
},
[]
@@ -650,8 +656,7 @@ return AbstractRenderer.extend({
if (!(datasetLabel in acc)) {
acc[datasetLabel] = newDataset(datasetLabel, dataPt.originIndex);
}
- var label = self._getLabel(dataPt);
- var labelIndex = self._indexOf(labels, label);
+ var labelIndex = dataPt.labelIndex;
acc[datasetLabel].data[labelIndex] = dataPt.value;
return acc;
},