Example #1
0
def report(request, report_id):
    context = RequestContext(request)
    report = get_object_or_404(CommcareReport, pk=report_id)
    if request.POST:
        indicator = request.POST.get('indicator', None)
        if indicator is not None:
            meta_data, created = ReportMetaData.objects.get_or_create(
                report=report, key='indicator', value=indicator)
            meta_data.save()
    indicators = ReportMetaData.objects.filter(
        report=report, key="indicator").values_list('value', flat=True)
    indicator_list = get_indicator_list()
    _indicators = \
        [item for item in indicator_list if item['name'] in indicators]
    context.indicators = generate_indicators(_indicators, report)
    # do not include already assigned indicators
    indicator_list =\
        [item for item in indicator_list if item['name'] not in indicators]
    context.indicator_list = indicator_list
    context.report = report
    return render(request, 'report.html', context_instance=context)