def highlevelgraphs(request, language, template_name="submissions/highlevelgraphs.html", extra_context=None, titles=None): extra_context = extra_context or {} translation = request.translation indicators = calc_overall_agency_indicators(funcs=positive_funcs) for indicator in indicators: (baseline_value, _, latest_value, _) = indicators[indicator][0] name = "graph_%s" % indicator.lower() if indicator not in ["5DPc"]: graph = highlevel_graph_by_indicator(indicator, name, translation, baseline_value, latest_value, target_values[indicator]) else: graph = highlevel_graph_by_indicator(indicator, name, translation, baseline_value, latest_value) extra_context["graph_%s" % indicator] = graph agency_data = dict([(agency, agency_scorecard.get_agency_scorecard_data(agency)) for agency in Agency.objects.all()]) extra_context["graph_pfm"] = additional_graph_by_indicator("5DPb", "graph_pfm", translation, agency_data) extra_context["graph_procurement"] = additional_graph_by_indicator("5DPa", "graph_procurement", translation, agency_data) extra_context["graph_multi_year"] = additional_graph_by_indicator("3DP", "graph_multi_year", translation, agency_data) extra_context["graph_pba"] = additional_graph_by_indicator("2DPc", "graph_pba", translation, agency_data) extra_context["graph_tc"] = additional_graph_by_indicator("2DPb", "graph_tc", translation, agency_data) extra_context["graph_aob"] = additional_graph_by_indicator("2DPa", "graph_aob", translation, agency_data) return direct_to_template(request, template=template_name, extra_context=extra_context)
def agency_ratings(request, language="English", template_name="submissions/agency_ratings.html", extra_context=None): extra_context = extra_context or {} extra_context["translation"] = translation = request.translation ratings = [] data = dict([(agency, agency_scorecard.get_agency_scorecard_data(agency)) for agency in models.Agency.objects.all()]) agencies = models.Agency.objects.all().order_by("agency") for indicator in indicators.dp_indicators: rating = {} for agency in agencies: cur_val = data[agency][indicator]["cur_val"] base_val = data[agency][indicator]["base_val"] perc_change = "" try: perc_change = ((cur_val - base_val) / base_val) * 100 except: pass rating[agency] = { "rating" : data[agency][indicator]["target"], "base_val" : data[agency][indicator]["base_val"], "cur_val" : data[agency][indicator]["cur_val"], "perc_change" : perc_change } ratings.append((indicator, rating, translation.spm_map[indicator])) extra_context["ratings"] = ratings extra_context["agencies"] = agencies return direct_to_template(request, template=template_name, extra_context=extra_context)
def agency_graphs_by_indicator(request, indicator, language, template_name="submissions/agency_graphs_by_indicator.html", extra_context=None): extra_context = extra_context or {} translation = request.translation indicators = calc_overall_agency_indicators(funcs=positive_funcs) extra_context["graphs"] = graphs = [] name = "graph_%s" % indicator (baseline_value, baseline_year, latest_value, latest_year) = indicators[indicator][0] target = target_values[indicator] graph = highlevel_graph_by_indicator(indicator, name, translation, baseline_value, latest_value, target=target) graphs.append({ "name" : name, "obj" : graph }) agency_data = dict([(agency, agency_scorecard.get_agency_scorecard_data(agency)) for agency in Agency.objects.all()]) name = "graph2_%s" % indicator graph = additional_graph_by_indicator(indicator, name, translation, agency_data) graphs.append({ "name" : name, "obj" : graph }) return direct_to_template(request, template=template_name, extra_context=extra_context)
def agency_export(request, language): language = get_object_or_404(Language, language=language) headers = [ "file", "agency", "agencytitle", "profile", "er1", "r1", "er2a", "r2a", "er2b", "r2b", "er2c", "r2c", "er3", "r3", "er4", "r4", "er5a", "r5a", "er5b", "r5b", "er5c", "r5c", "er6", "r6", "er7", "r7", "er8", "r8", "p1", "p2", "p3", "p4", "p5", "p6", "p7", "p8", "p9", "p10", "np1", "np2", "np3", "np4", "np5", "np6", "np7", "np8", "np9", "np10", "erb1", "erb2", "erb3", "erb4", "erb5", "erb6", "erb7", "erb8", "workingdraft", ] response = HttpResponse(mimetype="text/csv") response["Content-Disposition"] = "attachment; filename=agency_export.csv" writer = csv.writer(response) writer.writerow(headers) for agency in Agency.objects.all(): data = agency_scorecard.get_agency_scorecard_data(agency, language) writer.writerow([unicode(data.get(header, "")) for header in headers]) return response