diff --git a/app/main/__init__.py b/app/main/__init__.py index 4bb70bf45..97aa9f228 100644 --- a/app/main/__init__.py +++ b/app/main/__init__.py @@ -29,6 +29,7 @@ from app.main.views import ( # noqa isort:skip platform_admin, providers, register, + returned_letters, send, service_settings, sign_in, diff --git a/app/main/views/returned_letters.py b/app/main/views/returned_letters.py new file mode 100644 index 000000000..c0befbcd0 --- /dev/null +++ b/app/main/views/returned_letters.py @@ -0,0 +1,22 @@ +from flask import render_template, request + +from app import service_api_client +from app.main import main +from app.utils import user_has_permissions + + +@main.route("/services//returned-letter-summary", methods=["GET", "POST"]) +@user_has_permissions('manage_service') +def returned_letter_summary(service_id): + summary = service_api_client.get_returned_letter_summary(service_id) + return render_template( + 'views/returned-letter-summary.html', + data=summary, + ) + + +@main.route("/services//returned-letters-csv/", methods=["GET", "POST"]) +@user_has_permissions('manage_service') +def returned_letters_report(service_id, reported_at): + + return str(service_api_client.get_returned_letters(service_id, reported_at)) diff --git a/app/notify_client/service_api_client.py b/app/notify_client/service_api_client.py index 8c45fb1b3..259e70c06 100644 --- a/app/notify_client/service_api_client.py +++ b/app/notify_client/service_api_client.py @@ -569,5 +569,10 @@ class ServiceAPIClient(NotifyAdminAPIClient): def get_service_data_retention(self, service_id): return self.get("/service/{}/data-retention".format(service_id)) + def get_returned_letter_summary(self, service_id): + return self.get("service/{}/returned-letter-summary".format(service_id)) + + def get_returned_letters(self, service_id, reported_at): + return self.get("service/{}/returned-letters?reported_at={}".format(service_id, reported_at)) service_api_client = ServiceAPIClient() diff --git a/app/templates/views/returned-letter-summary.html b/app/templates/views/returned-letter-summary.html new file mode 100644 index 000000000..a7ee74efa --- /dev/null +++ b/app/templates/views/returned-letter-summary.html @@ -0,0 +1,32 @@ +{% from "components/table.html" import list_table, field %} +{% extends "withnav_template.html" %} + +{% block service_page_title %} + Returned letters +{% endblock %} + +{% block maincolumn_content %} +

+ Messages sent +

+
+ {% call(item, row_number) list_table( + data, + caption="Report", + caption_visible=False, + empty_message='If you have returned letter reports they will be listed here', + field_headings=[ + 'Report date', + 'number of letters' + ], + field_headings_visible=False + ) %} + {% call field() %} + + Returned letters reported on {{ item.reported_at | format_datetime_short}} ({{ item.returned_letter_count}} letters) + + {% endcall %} + {% endcall %} +
+ +{% endblock %} \ No newline at end of file