mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-25 00:33:58 -04:00
Tell user why validation failed on letter validation page - part 1
This commit is contained in:
@@ -5,6 +5,7 @@ from datetime import datetime
|
|||||||
|
|
||||||
from flask import abort, flash, redirect, render_template, request, url_for
|
from flask import abort, flash, redirect, render_template, request, url_for
|
||||||
from notifications_python_client.errors import HTTPError
|
from notifications_python_client.errors import HTTPError
|
||||||
|
from notifications_utils import LETTER_MAX_PAGE_COUNT
|
||||||
from requests import RequestException
|
from requests import RequestException
|
||||||
|
|
||||||
from app import (
|
from app import (
|
||||||
@@ -34,6 +35,7 @@ from app.utils import (
|
|||||||
Spreadsheet,
|
Spreadsheet,
|
||||||
generate_next_dict,
|
generate_next_dict,
|
||||||
generate_previous_dict,
|
generate_previous_dict,
|
||||||
|
get_letter_validation_error,
|
||||||
get_page_from_request,
|
get_page_from_request,
|
||||||
user_has_permissions,
|
user_has_permissions,
|
||||||
user_is_platform_admin,
|
user_is_platform_admin,
|
||||||
@@ -425,7 +427,18 @@ def letter_validation_preview(from_platform_admin):
|
|||||||
response = validate_letter(pdf_file)
|
response = validate_letter(pdf_file)
|
||||||
response.raise_for_status()
|
response.raise_for_status()
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
pages, message, result = response.json()["pages"], response.json()["message"], response.json()["result"]
|
pages, message = response.json()["pages"], response.json()["message"],
|
||||||
|
passed_validation = response.json()["result"]
|
||||||
|
invalid_pages = response.json().get('invalid_pages')
|
||||||
|
page_count = len(pages)
|
||||||
|
if page_count > LETTER_MAX_PAGE_COUNT:
|
||||||
|
message = "letter-too-long"
|
||||||
|
passed_validation = False
|
||||||
|
|
||||||
|
if not passed_validation:
|
||||||
|
message = get_letter_validation_error(
|
||||||
|
message, invalid_pages=invalid_pages, page_count=page_count
|
||||||
|
)
|
||||||
except RequestException as error:
|
except RequestException as error:
|
||||||
if error.response and error.response.status_code == 400:
|
if error.response and error.response.status_code == 400:
|
||||||
message = "Something was wrong with the file you tried to upload. Please upload a valid PDF file."
|
message = "Something was wrong with the file you tried to upload. Please upload a valid PDF file."
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{% from "components/banner.html" import banner_wrapper %}
|
||||||
|
|
||||||
|
{% call banner_wrapper(type='dangerous') %}
|
||||||
|
{% if message is string %}
|
||||||
|
<h1 class="banner-title">{{ message }}</h1>
|
||||||
|
{% else %}
|
||||||
|
<h1 class="banner-title">{{ message.title }}</h1>
|
||||||
|
{% if message.detail %}
|
||||||
|
<p>
|
||||||
|
{{ message.detail | safe }}
|
||||||
|
</p>
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% endcall %}
|
||||||
@@ -14,10 +14,10 @@
|
|||||||
|
|
||||||
<div class="grid-row">
|
<div class="grid-row">
|
||||||
<div class="column-whole">
|
<div class="column-whole">
|
||||||
{% if result %}
|
{% if passed_validation %}
|
||||||
{{ banner(message, with_tick=True) }}
|
{{ banner(message, with_tick=True) }}
|
||||||
{% elif message %}
|
{% elif message %}
|
||||||
{{ banner(message, 'dangerous')}}
|
{% include "partials/check/letter-validation-failed-banner.html" %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<h1 class="heading-large">Letter validation preview</h1>
|
<h1 class="heading-large">Letter validation preview</h1>
|
||||||
|
|||||||
@@ -21,10 +21,10 @@
|
|||||||
)}}
|
)}}
|
||||||
</div>
|
</div>
|
||||||
<div class="column-whole template-container">
|
<div class="column-whole template-container">
|
||||||
{% if result %}
|
{% if passed_validation %}
|
||||||
{{ banner(message, with_tick=True) }}
|
{{ banner(message, with_tick=True) }}
|
||||||
{% elif message %}
|
{% elif message %}
|
||||||
{{ banner(message, 'dangerous')}}
|
{% include "partials/check/letter-validation-failed-banner.html" %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% for page in pages %}
|
{% for page in pages %}
|
||||||
|
|||||||
Reference in New Issue
Block a user