def admin_per_form_report(report_schedule, run_frequency): # nothing calls this... which is good because it doesn't work org = report_schedule.organization transport = report_schedule.report_delivery usr = report_schedule.recipient_user #report_txt = tree_report(organization, run_frequency, recipient=usr, transport=report.report_delivery) from hq import reporter (startdate, enddate) = reporter.get_daterange(run_frequency) hierarchy = reporter.get_organizational_hierarchy(org.domain) defs = FormDefModel.objects.all().filter(domain=org.domain) fulltext = '' for fdef in defs: report_payload = repinspector.get_report_as_tuples_filtered(hierarchy, [fdef], startdate, enddate, 0) print "doing report for: " + str(fdef) if transport == 'email': do_separate = True params = {} heading = "Itemized report for " + fdef.form_display_name params['heading'] = heading rendered_text = reporter.render_direct_email(report_payload, startdate, enddate, "hq/reports/email_hierarchy_report.txt", params) else: do_separate=False fulltext += rendered_text newsubject = "[Commcare HQ] Itemized Report for: " + str(org) reporter.deliver_report(usr, fulltext, report_schedule.report_delivery,params={'startdate': startdate, 'enddate': enddate, 'frequency': run_frequency, 'email_subject': newsubject})
def pf_swahili_sms(report_schedule, run_frequency): """ Generates an sms report of the form: 'Number of visits this week: DeRenzi(5), Jackson(3), Lesh(1)' """ usr = report_schedule.recipient_user organization = report_schedule.organization org_domain = organization.domain transport = report_schedule.report_delivery if organization != None: from hq import reporter (startdate, enddate) = reporter.get_daterange(run_frequency) root_orgs = Organization.objects.filter(parent=None, domain=org_domain) # note: this pretty sneakily decides for you that you only care # about one root organization per domain. should we lift this # restriction? otherwise this may hide data from you root_org = root_orgs[0] # this call makes the meat of the report. report_payload = repinspector.get_data_below(root_org, startdate, enddate, 0) if transport == 'email': do_separate = True else: do_separate=False rendered_text = reporter.render_reportstring(org_domain, report_payload, run_frequency, template_name="hq/reports/hack_sms_swahili.txt", transport=transport) reporter.deliver_report(usr, rendered_text, report_schedule.report_delivery,params={'startdate': startdate, 'enddate': enddate, 'frequency': run_frequency})