Files
mayan-edms/mayan/apps/mayan_statistics/renderers.py
Roberto Rosario 64ca5a623f PEP8 cleanups.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-05 04:56:39 -04:00

69 lines
1.8 KiB
Python

from __future__ import unicode_literals
import json
class ChartRenderer(object):
def __init__(self, data):
self.data = data
def get_chart_data(self):
raise NotImplementedError
class ChartJSLine(ChartRenderer):
template_name = 'statistics/renderers/chartjs/line.html'
dataset_palette = (
{
'fillColor': "rgba(220,220,220,0.2)",
'strokeColor': "rgba(220,220,220,1)",
'pointColor': "rgba(220,220,220,1)",
'pointStrokeColor': "#fff",
'pointHighlightFill': "#fff",
'pointHighlightStroke': "rgba(220,220,220,1)",
},
{
'fillColor': "rgba(151,187,205,0.2)",
'strokeColor': "rgba(151,187,205,1)",
'pointColor': "rgba(151,187,205,1)",
'pointStrokeColor': "#fff",
'pointHighlightFill': "#fff",
'pointHighlightStroke': "rgba(151,187,205,1)",
},
)
def get_chart_data(self):
labels = []
datasets = []
for count, serie in enumerate(self.data['series'].items()):
series_name, series_data = serie
dataset_labels = []
dataset_values = []
for data_point in series_data:
dataset_labels.extend(data_point.keys())
dataset_values.extend(data_point.values())
labels = dataset_labels
dataset = {
'label': series_name,
'data': dataset_values,
}
dataset.update(
ChartJSLine.dataset_palette[
count % len(ChartJSLine.dataset_palette)
]
)
datasets.append(dataset)
data = {
'labels': labels,
'datasets': datasets,
}
return json.dumps(data)