mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-20 14:29:51 -04:00
Added returned-letter-summary page.
This page displays a list of available reports, a report is a set of returned lettters that have been reported on the same day. Each line of the page is a link that can download the report. I'm not sure the format of the csv is right. The data might be confusing especially if the service has a mix of precompiled templates and jobs. Units tests are still to come.
This commit is contained in:
@@ -1,12 +1,14 @@
|
||||
from flask import render_template, request
|
||||
from collections import OrderedDict
|
||||
|
||||
from flask import render_template
|
||||
|
||||
from app import service_api_client
|
||||
from app.main import main
|
||||
from app.utils import user_has_permissions
|
||||
from app.utils import Spreadsheet, user_has_permissions
|
||||
|
||||
|
||||
@main.route("/services/<uuid:service_id>/returned-letter-summary", methods=["GET", "POST"])
|
||||
@user_has_permissions('manage_service')
|
||||
@user_has_permissions('view_activity')
|
||||
def returned_letter_summary(service_id):
|
||||
summary = service_api_client.get_returned_letter_summary(service_id)
|
||||
return render_template(
|
||||
@@ -16,7 +18,27 @@ def returned_letter_summary(service_id):
|
||||
|
||||
|
||||
@main.route("/services/<uuid:service_id>/returned-letters-csv/<reported_at>", methods=["GET", "POST"])
|
||||
@user_has_permissions('manage_service')
|
||||
@user_has_permissions('view_activity')
|
||||
def returned_letters_report(service_id, reported_at):
|
||||
returned_letters = service_api_client.get_returned_letters(service_id, reported_at)
|
||||
column_names = OrderedDict([
|
||||
('client_reference', 'Reference'),
|
||||
('created_at', 'Date sent'),
|
||||
('notification_id', 'Notification ID'),
|
||||
('template_name', 'Template name'),
|
||||
('template_id', 'Template ID'),
|
||||
('template_version', 'Template version'),
|
||||
('original_file_name', 'Job file name'),
|
||||
('job_row_number', 'Job row number'),
|
||||
])
|
||||
|
||||
return str(service_api_client.get_returned_letters(service_id, reported_at))
|
||||
# initialise with header row
|
||||
data = [[x for x in column_names.values()]]
|
||||
|
||||
for row in returned_letters:
|
||||
data.append([row[key] for key in column_names.keys()])
|
||||
|
||||
return Spreadsheet.from_rows(data).as_csv_data, 200, {
|
||||
'Content-Type': 'text/csv; charset=utf-8',
|
||||
'Content-Disposition': 'inline; filename="{} returned letters.csv"'.format(reported_at)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user