Add a page for each report

It’s useful to get some kind of preview of the report before you
download it.

And if there’s only a few letters in there then you might not even need
to download it at all.

For teams with lots of letters we don’t want the page to load too slowly
so let’s cap the number of displayed items to 50, same as previewing
a spreadsheet.
This commit is contained in:
Chris Hill-Scott
2019-12-31 13:27:27 +00:00
parent 9c3315f194
commit 3b7dc05dd6
6 changed files with 180 additions and 5 deletions

View File

@@ -17,6 +17,24 @@ def returned_letter_summary(service_id):
)
@main.route("/services/<uuid:service_id>/returned-letters/<simple_date:reported_at>", methods=["GET"])
@user_has_permissions('view_activity')
def returned_letters(service_id, reported_at):
page_size = 50
returned_letters = service_api_client.get_returned_letters(service_id, reported_at)
count_of_returned_letters = len(returned_letters)
return render_template(
'views/returned-letters.html',
returned_letters=returned_letters[:page_size],
reported_at=reported_at,
more_than_one_page=(count_of_returned_letters > page_size),
page_size=page_size,
count_of_returned_letters=count_of_returned_letters,
)
@main.route("/services/<uuid:service_id>/returned-letters/<simple_date:reported_at>.csv", methods=["GET"])
@user_has_permissions('view_activity')
def returned_letters_report(service_id, reported_at):