def generate_highcharts_config(self, docs, args): params = args.get('params') or {} aggs = args.get('aggs') or {} group = aggs.get('group') or {} subgroup = aggs.get('subgroup') or {} translations = args.get('translations') or {} chart = params.get('chart') or {} chart_type = chart.get('type') or 'bar' report = self.generate_report(docs, args) chart_config = ChartConfig('content_publishing', chart_type) group_keys = list(report['groups'].keys()) if len(group_keys) == 1 and report.get('subgroups'): chart_config.add_source( subgroup.get('field'), report['subgroups'] ) chart_config.load_translations(group.get('field')) else: chart_config.add_source(group.get('field'), report.get('groups')) if report.get('subgroups'): chart_config.add_source(subgroup.get('field'), report['subgroups']) def gen_title(): if chart.get('title'): return chart['title'] group_type = group.get('field') group_title = chart_config.get_source_name(group_type) if len(group_keys) == 1 and report.get('subgroups'): data_name = chart_config.get_source_title( group_type, group_keys[0] ) return 'Published Stories for {}: {}'.format( group_title, data_name ) return 'Published Stories per {}'.format(group_title) def gen_subtitle(): return ChartConfig.gen_subtitle_for_dates(params) chart_config.get_title = gen_title chart_config.get_subtitle = gen_subtitle chart_config.sort_order = chart.get('sort_order') or 'desc' chart_config.translations = translations report['highcharts'] = [chart_config.gen_config()] return report
def generate_highcharts_config(self, docs, args): params = args.get('params') or {} aggs = args.get('aggs') or {} group = aggs.get('group') or {} subgroup = aggs.get('subgroup') or {} translations = args.get('translations') or {} chart = params.get('chart') or {} chart_type = chart.get('type') or 'bar' report = self.generate_report(docs, args) chart_config = ChartConfig('content_publishing', chart_type) chart_config.add_source(group.get('field'), report.get('groups')) if report.get('subgroups'): chart_config.add_source(subgroup.get('field'), report['subgroups']) def gen_title(): if chart.get('title'): return chart['title'] group_type = group.get('field') group_title = chart_config.get_source_name(group_type) if subgroup.get('field'): subgroup_type = subgroup.get('field') subgroup_title = chart_config.get_source_name(subgroup_type) return 'Published Stories per {} with {} breakdown'.format( group_title, subgroup_title ) return 'Published Stories per {}'.format(group_title) def gen_subtitle(): return ChartConfig.gen_subtitle_for_dates(params) chart_config.get_title = gen_title chart_config.get_subtitle = gen_subtitle chart_config.sort_order = chart.get('sort_order') or 'desc' chart_config.translations = translations report['highcharts'] = [chart_config.gen_config()] return report
def generate_highcharts_config(self, docs, args): params = args.get('params') or {} chart = params.get('chart') or {} chart_type = chart.get('type') or 'bar' report = self.generate_report(docs, args) chart_config = ChartConfig('planning_usage', chart_type) chart_config.add_source('task.user', report.get('group')) chart_config.add_source('planning_usage', report.get('subgroup')) def gen_title(): if chart.get('title'): return chart['title'] return 'Planning Module Usage' def gen_subtitle(): return ChartConfig.gen_subtitle_for_dates(params) def get_y_axis_title(): return 'Items Created' chart_config.get_title = gen_title chart_config.get_subtitle = gen_subtitle chart_config.get_y_axis_title = get_y_axis_title chart_config.sort_order = chart.get('sort_order') or 'desc' translations = args.get('translations') or {} chart_config.translations = translations report['highcharts'] = [chart_config.gen_config()] return report