def get_data(reportname, store, params, handler_args): handlers = get_conf("handlers") datas = store.__getattribute__(handlers[reportname]["db_handler"])( reportname, params, versions=params['versions'], appkeylist=None) return globals().get(handlers[reportname]["result_handler"])(datas, handler_args)
def reporting_chart_page(request, name): chart_mapping = get_conf("chart_mapping") if name in chart_mapping: chart_mapping[name]['chart'] = name return render_to_response('reporting.html', chart_mapping[name], context_instance=RequestContext(request))
def reporting_data(request): chart_view = get_conf("chart_view") params = get_request_params(request) if not params['report_name'] or not params['chart_name'] or \ params['chart_name'] not in chart_view.keys(): return [] return write_result(chart_view[params['chart_name']], params, callback=(translate, ))
def translate(report_name, datas, *args, **kwargs): translate_mapping = get_conf("translate_mapping") if report_name not in (u"访问来源分布", u"下载来源", u"来源分布"): return datas results = [] for data in datas: if set(data.keys()) & set(translate_mapping.keys()): for key in data.keys(): if key in translate_mapping.keys(): data[key] = translate_mapping[key].get(data[key], data[key]) results.append(data) return results
def translate(report_name, datas, *args, **kwargs): translate_mapping = get_conf("translate_mapping") if report_name not in (u"访问来源分布", u"下载来源", u"来源分布"): return datas results = [] for data in datas: if set(data.keys()) & set(translate_mapping.keys()): for key in data.keys(): if key in translate_mapping.keys(): data[key] = translate_mapping[key].get( data[key], data[key]) results.append(data) return results
def get_sources(reportname): global featured_download_sources, rank_download_sources, times times += 1 translate_mapping = get_conf("translate_mapping") reportname_mappings = { u"首页图表": (featured_download_sources, 'featured_'), u"排行图表": (rank_download_sources, 'rank_'), } sources = reportname_mappings[reportname][0] if not sources or times % 1000 == 0: sources = store.get_ranking_sources(reportname_mappings[reportname][1]) final_sources = [[s, translate_mapping['source'][s]] for s in sources if translate_mapping['source'].get(s,None)] sources = final_sources return sources
def get_sources(reportname): global featured_download_sources, rank_download_sources, times times += 1 translate_mapping = get_conf("translate_mapping") reportname_mappings = { u"首页图表": (featured_download_sources, 'featured_'), u"排行图表": (rank_download_sources, 'rank_'), } sources = reportname_mappings[reportname][0] if not sources or times % 1000 == 0: sources = store.get_ranking_sources(reportname_mappings[reportname][1]) final_sources = [[s, translate_mapping['source'][s]] for s in sources if translate_mapping['source'].get(s, None)] sources = final_sources return sources
def convert_trend_data(results): dates = sorted(list(set([r['date'] for r in results]))) sources = list(set([r['source'] for r in results])) final_results = [{'name': u'日期', 'data': dates}] values = {} source_mapping = get_conf("translate_mapping")['source'] for r in results: key = r['date'] + '_' + r['source'] if key in values.keys(): values[key] += int(r['times']) else: values[key] = int(r['times']) for source in sources: value_list = [] for d in dates: value_list.append(values.get(d + '_' + source, 0)) final_results.append({'name': source_mapping.get(source, source), 'data': value_list}) return final_results
def convert_trend_data(results): dates = sorted(list(set([r['date'] for r in results]))) sources = list(set([r['source'] for r in results])) final_results = [{'name': u'日期', 'data': dates}] values = {} source_mapping = get_conf("translate_mapping")['source'] for r in results: key = r['date'] + '_' + r['source'] if key in values.keys(): values[key] += int(r['times']) else: values[key] = int(r['times']) for source in sources: value_list = [] for d in dates: value_list.append(values.get(d + '_' + source, 0)) final_results.append({ 'name': source_mapping.get(source, source), 'data': value_list }) return final_results
def get_data(reportname, store, params, handler_args): handlers = get_conf("handlers") datas = store.__getattribute__(handlers[reportname]["db_handler"])(reportname, params, versions=params['versions'], appkeylist=None) return globals().get(handlers[reportname]["result_handler"])(datas, handler_args)