mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-19 14:09:20 -04:00
Add page to show all uploaded letters
Because we won’t be showing uploaded letters individually on the uploads page any more we need a way of listing them. This should be by printing day, to match how we’re grouping them on the uploads page. This code reuses the notifications.html template, but flips the precedence of the filename and recipient because I reckon when you’re looking at uploads you’re thinking filename-first.
This commit is contained in:
@@ -25,7 +25,12 @@ from requests import RequestException
|
||||
from xlrd.biffh import XLRDError
|
||||
from xlrd.xldate import XLDateError
|
||||
|
||||
from app import current_service, notification_api_client, service_api_client
|
||||
from app import (
|
||||
current_service,
|
||||
notification_api_client,
|
||||
service_api_client,
|
||||
upload_api_client,
|
||||
)
|
||||
from app.extensions import antivirus_client
|
||||
from app.main import main
|
||||
from app.main.forms import CsvUploadForm, LetterUploadPostageForm, PDFUploadForm
|
||||
@@ -42,7 +47,9 @@ from app.utils import (
|
||||
generate_next_dict,
|
||||
generate_previous_dict,
|
||||
get_errors_for_csv,
|
||||
get_letter_printing_statement,
|
||||
get_letter_validation_error,
|
||||
get_page_from_request,
|
||||
get_sample_template,
|
||||
get_template,
|
||||
unicode_truncate,
|
||||
@@ -83,6 +90,53 @@ def uploads(service_id):
|
||||
)
|
||||
|
||||
|
||||
@main.route("/services/<uuid:service_id>/uploaded-letters/<simple_date:letter_print_day>")
|
||||
@user_has_permissions()
|
||||
def uploaded_letters(service_id, letter_print_day):
|
||||
page = get_page_from_request()
|
||||
if page is None:
|
||||
abort(404, "Invalid page argument ({}).".format(request.args.get('page')))
|
||||
uploaded_letters = upload_api_client.get_letters_by_service_and_print_day(
|
||||
current_service.id, letter_print_day=letter_print_day, page=page,
|
||||
)
|
||||
|
||||
prev_page = None
|
||||
if uploaded_letters['links'].get('prev'):
|
||||
prev_page = generate_previous_dict('.uploaded_letters', service_id, page, url_args={
|
||||
'letter_print_day': letter_print_day
|
||||
})
|
||||
next_page = None
|
||||
if uploaded_letters['links'].get('next'):
|
||||
next_page = generate_next_dict('.uploaded_letters', service_id, page, url_args={
|
||||
'letter_print_day': letter_print_day
|
||||
})
|
||||
return render_template(
|
||||
'views/uploads/uploaded-letters.html',
|
||||
notifications=add_preview_of_content_uploaded_letters(
|
||||
uploaded_letters['notifications']
|
||||
),
|
||||
prev_page=prev_page,
|
||||
next_page=next_page,
|
||||
show_pagination=True,
|
||||
total=uploaded_letters['total'],
|
||||
letter_printing_statement=get_letter_printing_statement(
|
||||
'created',
|
||||
letter_print_day,
|
||||
),
|
||||
letter_print_day=letter_print_day,
|
||||
)
|
||||
|
||||
|
||||
def add_preview_of_content_uploaded_letters(notifications):
|
||||
|
||||
for notification in notifications:
|
||||
yield(dict(
|
||||
preview_of_content=', '.join(notification.pop('to').splitlines()),
|
||||
to=notification['client_reference'],
|
||||
**notification
|
||||
))
|
||||
|
||||
|
||||
@main.route("/services/<uuid:service_id>/upload-letter", methods=['GET', 'POST'])
|
||||
@user_has_permissions('send_messages')
|
||||
def upload_letter(service_id):
|
||||
|
||||
Reference in New Issue
Block a user