mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-06 15:28:25 -04:00
New pages to show a summary of all the reports the services has for its returned letters
This commit is contained in:
@@ -29,6 +29,7 @@ from app.main.views import ( # noqa isort:skip
|
|||||||
platform_admin,
|
platform_admin,
|
||||||
providers,
|
providers,
|
||||||
register,
|
register,
|
||||||
|
returned_letters,
|
||||||
send,
|
send,
|
||||||
service_settings,
|
service_settings,
|
||||||
sign_in,
|
sign_in,
|
||||||
|
|||||||
22
app/main/views/returned_letters.py
Normal file
22
app/main/views/returned_letters.py
Normal 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))
|
||||||
@@ -569,5 +569,10 @@ class ServiceAPIClient(NotifyAdminAPIClient):
|
|||||||
def get_service_data_retention(self, service_id):
|
def get_service_data_retention(self, service_id):
|
||||||
return self.get("/service/{}/data-retention".format(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()
|
service_api_client = ServiceAPIClient()
|
||||||
|
|||||||
32
app/templates/views/returned-letter-summary.html
Normal file
32
app/templates/views/returned-letter-summary.html
Normal 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 %}
|
||||||
Reference in New Issue
Block a user