diff options
| -rw-r--r-- | addons/web/static/src/js/views/graph/graph_model.js | 1 | ||||
| -rw-r--r-- | addons/web/static/src/js/views/graph/graph_renderer.js | 13 |
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; }, |
