Exemple #1
0
    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
Exemple #2
0
    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
Exemple #3
0
    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
Exemple #4
0
    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
Exemple #5
0
 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
Exemple #6
0
 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