diff --git a/hypha/apply/funds/utils.py b/hypha/apply/funds/utils.py index 089e0cbe50..6e11f199f1 100644 --- a/hypha/apply/funds/utils.py +++ b/hypha/apply/funds/utils.py @@ -104,18 +104,25 @@ def get_statuses_as_params(statuses): return params -def export_submissions_to_csv(submissions_list): +def export_submissions_to_csv(submissions_list, request): csv_stream = StringIO() - header_row = ["Application #"] - index = 1 + header_row = ["Application #", "URL"] + index = 2 data_list = [] + for submission in submissions_list: values = {} values["Application #"] = submission.id + values["URL"] = request.build_absolute_uri(submission.get_absolute_url()) for field_id in submission.question_text_field_ids: question_field = submission.serialize(field_id) field_name = question_field["question"] field_value = question_field["answer"] + if field_id == "address": + address = [] + for key, value in field_value.items(): + address.append(f"{key}: {value}") + field_value = "\n".join(address) if field_name not in header_row: if field_id not in submission.named_blocks: header_row.append(field_name) diff --git a/hypha/apply/funds/views/all.py b/hypha/apply/funds/views/all.py index ce6b6d3fc8..06a83d271b 100644 --- a/hypha/apply/funds/views/all.py +++ b/hypha/apply/funds/views/all.py @@ -268,7 +268,7 @@ def submissions_all( if request.GET.get("format") == "csv" and permissions.can_export_submissions( request.user ): - csv_data = export_submissions_to_csv(qs) + csv_data = export_submissions_to_csv(qs, request) response = HttpResponse(csv_data.readlines(), content_type="text/csv") response["Content-Disposition"] = "attachment; filename=submissions.csv" return response