def _get_chart_csv(chart): datatable = chart.get_data_as_table() output = StringIO() w = UnicodeWriter(output) for row in datatable: w.writerow(row) output.seek(0) response = HttpResponse(output.read(), mimetype='application/ms-excel') response["content-disposition"] = 'attachment; filename="%s-%s.csv"' % ( chart.title, str(datetime.datetime.now().date())) return response
def case_export_csv(request, case_id): case = Case.objects.get(id=case_id) cols = case.get_column_names() data = case.get_topmost_data().values() output = StringIO() w = UnicodeWriter(output) w.writerow(cols) for row in data: w.writerow(row) output.seek(0) response = HttpResponse(output.read(), mimetype="application/ms-excel") response["content-disposition"] = 'attachment; filename="%s-%s.csv"' % (case.name, str(datetime.now().date())) return response
def single_instance_csv(request, formdef_id, instance_id): ''' CSV dowload for data for a single xform instance submission. ''' # unfortunate copy pasting of the above method. xform = FormDefModel.objects.get(id=formdef_id) row = xform.get_row(instance_id) fields = xform.get_display_columns() data = zip(fields, row) output = StringIO() w = UnicodeWriter(output) headers = ["Field", "Value"] w.writerow(headers) for row in data: w.writerow(row) output.seek(0) response = HttpResponse(output.read(), mimetype='application/ms-excel') response["content-disposition"] = 'attachment; filename="%s-%s.csv"' % ( xform.form_display_name, instance_id) return response