def measles_mini_summary_csv(request, file_name): output = StringIO.StringIO() csvio = csv.writer(output) header = False summary = ReportCHWStatus.measles_mini_summary() rows = [] row = [] row.append("Facility") row.append("No. Vaccinated") row.append("No. Eligible") row.append("%") rows.append(row) for info in summary: info["percentage"] = round(float(float(info["vaccinated_cases"])/float(info["eligible_cases"]))*100, 2); row = [] row.append(u"%(clinic)s"%info) row.append(u"%(vaccinated_cases)s"%info) row.append(u"%(eligible_cases)s"%info) row.append(u"%(percentage)s%%"%info) rows.append(row) # Write rows on CSV for row in rows: csvio.writerow([cell for cell in row]) response = HttpResponse(mimetype='text/csv') response['Content-Disposition'] = "attachment; filename=%s" % file_name response.write(output.getvalue()) return response
def measles_summary(request, object_id=None, per_page="0", rformat="pdf", d="30"): pdfrpt = PDFReport() d = int(d) pdfrpt.enableFooter(True) thirty_days = timedelta(days=d) ninty_days = timedelta(days=90) today = date.today() duration_start = today - thirty_days muac_duration_start = today - ninty_days duration_end = today #pdfrpt.setTitle("RapidResponse MVP Kenya: CHW 30 Day Performance Report, from %s to %s"%(duration_start, duration_end)) pdfrpt.setTitle("Measles Campaign Summary") if object_id is None: clinics = Provider.objects.values('clinic').filter(role=1).distinct() for clinic in clinics: queryset, fields = ReportCHWStatus.measles_summary(duration_start, duration_end, muac_duration_start, clinic["clinic"]) c = Facility.objects.filter(id=clinic["clinic"])[0] pdfrpt.setTableData(queryset, fields, c.name) if (int(per_page) == 1) is True: pdfrpt.setPageBreak() pdfrpt.setFilename("report_per_page") else: if request.POST['clinic']: object_id = request.POST['clinic'] queryset, fields = ReportCHWStatus.measles_summary(duration_start, duration_end, muac_duration_start, object_id) c = Facility.objects.filter(id=object_id)[0] if rformat == "csv" or (request.POST and request.POST["format"].lower() == "csv"): file_name = c.name + ".csv" file_name = file_name.replace(" ","_").replace("'","") return handle_csv(request, queryset, fields, file_name) pdfrpt.setTableData(queryset, fields, c.name) return pdfrpt.render()