Add letter validation preview functionality

- add get/post view
- create a pdf upload form
- add a template where user can upload the file
- check boundaries of the letter by calling template-preview
- display banner messages with boundaries validation result
- display pages of the document, with visible boundaries overlay
if the document did not pass validation, and without overlay
if they do pass validation
This commit is contained in:
Pea Tyczynska
2018-09-26 16:42:40 +01:00
parent 68afbcf60e
commit 3be129241f
8 changed files with 93 additions and 2 deletions

View File

@@ -13,11 +13,12 @@ from app import (
service_api_client,
)
from app.main import main
from app.main.forms import DateFilterForm, ReturnedLettersForm
from app.main.forms import DateFilterForm, ReturnedLettersForm, PDFUploadForm
from app.statistics_utils import (
get_formatted_percentage,
get_formatted_percentage_two_dp,
)
from app.template_previews import validate_letter
from app.utils import (
generate_next_dict,
generate_previous_dict,
@@ -240,6 +241,29 @@ def platform_admin_returned_letters():
)
@main.route("/platform-admin/letter-validation-preview", methods=["GET", "POST"])
@login_required
@user_is_platform_admin
def platform_admin_letter_validation_preview():
message, pages, result = None, [], None
form = PDFUploadForm()
if request.method == "POST":
pdf_file = form.file.data
response = validate_letter(pdf_file)
if response.status_code == 200:
pages=response.json()["pages"]
message = response.json()["message"]
result = response.json()["result"]
return render_template(
'views/platform-admin/letter-validation-preview.html',
form=form,
message=message,
pages=pages,
result=result
)
def sum_service_usage(service):
total = 0
for notification_type in service['statistics'].keys():