def pie_charts(self): if self._pie_charts is None: import uuid all_columns = self.data_set.columns self._pie_charts = [] for pie in self._pie: pie_column_idx = pie.get("column") column = all_columns[pie_column_idx] colors = pie.get("colors", []) data = [] display_names = [] length = len(self.data) total = sum(row[column["idx"]] for row in self.data) for idx, row in enumerate(self.data): from flask.ext.report.utils import get_color color = get_color(idx, colors, length) data.append({"value": row[column["idx"]], "color": color}) display_columns = pie.get("display_columns", []) name = "(" + ", ".join(unicode(row[all_columns[c]['idx']]) for c in display_columns) + ')' display_names.append({"name": name, "color": color, "distribution": "%.2f%%" % (row[column["idx"]] * 100.0 / total)}) result = {"name": pie.get("name"), "id_": uuid.uuid1(), "display_names": display_names, "data": data} self._pie_charts.append(result) return self._pie_charts
def bar_charts(self): if self._bar_charts is None: import uuid self._bar_charts = [] all_columns = self.data_set.columns for bar_chart in self._bar: data = {} bar_columns = bar_chart.get("columns", []) colors = bar_chart.get("colors", []) columns = [all_columns[i] for i in bar_columns] for column in columns: labels = data.setdefault("labels", []) if column["name"] not in labels: labels.append(column["name"]) display_names = [] length = len(self.data) for idx, i in enumerate(self.data): from flask.ext.report.utils import get_color color1, color2 = get_color(idx, colors, length, False) dataset = {"fillColor": color1, "strokeColor": color2, "data": [int(i[c["idx"]]) for c in columns]} display_columns = bar_chart.get("display_columns", []) name = "(" + ", ".join(unicode(i[all_columns[c]['idx']]) for c in display_columns) + ')' display_names.append( {"name": name, "color": color1}) datasets = data.setdefault("datasets", []) datasets.append(dataset) self._bar_charts.append({"name": bar_chart.get("name"), "id_": uuid.uuid1(), "data": data, "display_names": display_names}) return self._bar_charts
def bar_charts(self): # TODO need it? if self._bar_charts is None: self._bar_charts = [] all_columns = self.data_set.columns for bar_chart in self._bar: data = {} bar_columns = bar_chart.get('columns', []) colors = bar_chart.get('colors', []) columns = [all_columns[i] for i in bar_columns] for column in columns: labels = data.setdefault('labels', []) if column['name'] not in labels: labels.append(column['name']) display_names = [] length = len(self.data) for (idx, i) in enumerate(self.data): from flask.ext.report.utils import get_color (color1, color2) = get_color(idx, colors, length, False) dataset = {'fillColor': color1, 'strokeColor': color2, 'data': [int(i[c['idx']]) for c in columns]} display_columns = bar_chart.get('display_columns', []) name = '(' \ + ', '.join(unicode(i[all_columns[c]['idx']]) for c in display_columns) + ')' display_names.append({ 'name': name, 'color': color1 }) datasets = data.setdefault('datasets', []) datasets.append(dataset) self._bar_charts.append({ 'name': bar_chart.get('name'), 'id_': uuid.uuid1(), 'data': data, 'display_names': display_names, }) return self._bar_charts
def bar_charts(self): # TODO need it? if self._bar_charts is None: self._bar_charts = [] all_columns = self.data_set.columns for bar_chart in self._bar: data = {} bar_columns = bar_chart.get('columns', []) colors = bar_chart.get('colors', []) columns = [all_columns[i] for i in bar_columns] for column in columns: labels = data.setdefault('labels', []) if column['name'] not in labels: labels.append(column['name']) display_names = [] length = len(self.data) for (idx, i) in enumerate(self.data): from flask.ext.report.utils import get_color (color1, color2) = get_color(idx, colors, length, False) dataset = { 'fillColor': color1, 'strokeColor': color2, 'data': [int(i[c['idx']]) for c in columns] } display_columns = bar_chart.get('display_columns', []) name = '(' \ + ', '.join(unicode(i[all_columns[c]['idx']]) for c in display_columns) + ')' display_names.append({'name': name, 'color': color1}) datasets = data.setdefault('datasets', []) datasets.append(dataset) self._bar_charts.append({ 'name': bar_chart.get('name'), 'id_': uuid.uuid1(), 'data': data, 'display_names': display_names, }) return self._bar_charts
def pie_charts(self): # TODO need it? if self._pie_charts is None: all_columns = self.data_set.columns self._pie_charts = [] for pie in self._pie: pie_column_idx = pie.get('column') column = all_columns[pie_column_idx] colors = pie.get('colors', []) data = [] display_names = [] length = len(self.data) total = sum(row[column['idx']] for row in self.data) for (idx, row) in enumerate(self.data): from flask.ext.report.utils import get_color color = get_color(idx, colors, length) data.append({'value': row[column['idx']], 'color': color}) display_columns = pie.get('display_columns', []) name = '(' \ + ', '.join(unicode(row[all_columns[c]['idx']]) for c in display_columns) + ')' display_names.append({ 'name': name, 'color': color, 'distribution': '%.2f%%' % (row[column['idx']] * 100.0 / total) }) result = { 'name': pie.get('name'), 'id_': uuid.uuid1(), 'display_names': display_names, 'data': data, } self._pie_charts.append(result) return self._pie_charts