New pages to show a summary of all the reports the services has for its returned letters

This commit is contained in:
Rebecca Law
2019-12-17 17:23:00 +00:00
parent 4a17c461e2
commit e2d979f199
4 changed files with 60 additions and 0 deletions

View File

@@ -29,6 +29,7 @@ from app.main.views import ( # noqa isort:skip
platform_admin,
providers,
register,
returned_letters,
send,
service_settings,
sign_in,

View File

@@ -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/<uuid:service_id>/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/<uuid:service_id>/returned-letters-csv/<reported_at>", 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))

View File

@@ -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()

View File

@@ -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 %}
<h1 class="heading-large">
Messages sent
</h1>
<div class="body-copy-table" id='pill-selected-item'>
{% 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() %}
<a href="{{url_for('.returned_letters_report', service_id=current_service.id, reported_date=item.reported_at)}}">
Returned letters reported on {{ item.reported_at | format_datetime_short}} ({{ item.returned_letter_count}} letters)
</a>
{% endcall %}
{% endcall %}
</div>
{% endblock %}