Пример #1
0
def measles(request, object_id=None, per_page="0", rformat="pdf"):
    '''List of Cases/Children Eligible for measles not yet vaccinated'''
    pdfrpt = PDFReport()
    pdfrpt.setLandscape(False)
    #pdfrpt.setTitle("RapidResponse MVP Kenya: Cases Reports by CHW")
    pdfrpt.setTitle(_("Measles Campaign"))
    if object_id is None:
        if request.POST and request.POST['zone']:
            reporters = Case.objects.filter(location=request.POST['zone']).\
                values('reporter', 'location').distinct()
            per_page = "1"
        else:
            reporters = Reporter.objects.order_by("location").all()
        for reporter in reporters:
            queryset, fields = ReportAllPatients.measles_by_provider(reporter)
            if queryset:
                title = reporter.location.name + ": " + \
                    reporter.full_name() + \
                    " (sms format: `MEASLES +PID +PID +PID`)"
                pdfrpt.setTableData(queryset, fields, title)
                if (int(per_page) == 1) is True:
                    pdfrpt.setPageBreak()
                pdfrpt.setFilename("/tmp/report_per_page")
    else:
        if request.POST and request.POST['provider']:
            object_id = request.POST['provider']
        reporter = Reporter.objects.get(id=object_id)
        queryset, fields = ReportAllPatients.measles_by_provider(reporter)
        if queryset:
            title = reporter.full_name() + \
            " (sms format: `MEASLES +PID +PID +PID`)"
            if rformat == "csv" or (request.POST \
                                and request.POST["format"].lower() == "csv"):
                file_name = reporter.full_name() + ".csv"
                file_name = file_name.replace(" ", "_").replace("'", "")
                return handle_csv(request, queryset, fields, file_name)

            pdfrpt.setTableData(queryset, fields, title)

    return pdfrpt.render()