Example #1
0
def refresh_dataset(request, report_pk):
    # download the report csv data from commcare
    try:
        report = CommcareReport.objects.get(pk=report_pk)
    except CommcareReport.DoesNotExist:
        return HttpResponseNotFound(_(u"Error: Report Not found!"))
    else:
        csv_file = None
        try:
            csv_file = download_commcare_zip_report(
                report.source_url,
                username=settings.COMMCARE_USERNAME,
                password=settings.COMMCARE_PASSWORD)
        except ConnectionError:
            request.session['error_msg'] =\
                _(u"Connection Error: Unable to download report from %s." %
                  report.source_url)
        if csv_file is not None:
            # push the data to bamboo.io
            data = bamboo_store_csv_file(csv_file, settings.BAMBOO_POST_URL)
            if type(data) == dict:
                report.dataset_id = data["id"]
                report.save()
            # TODO: delete csv file or cache
        else:
            return HttpResponse(_(u"Unable to download report!"))
    if request.is_ajax():
        return HttpResponse(u"OK")
    else:
        return HttpResponseRedirect(reverse(index))
Example #2
0
 def test_download_commcare_report(self):
     file_name = download_commcare_zip_report(
         self._commcare_report_url,
         settings.COMMCARE_USERNAME,
         settings.COMMCARE_PASSWORD
     )
     self.assertIsNotNone(file_name)
     self.assertIn("output", file_name)
     self.assertTrue(file_name.endswith('#.csv'))