Add re-upload button and back link to the preview page

Re-upload button is only shown if file failed validation.

Change wording of re-upload buttons

Make test we test right buttons on letter upload preview page

Also remove double backlink
This commit is contained in:
Pea Tyczynska
2019-11-27 13:27:52 +00:00
parent 4fc8f5b5d1
commit 02beccd066
5 changed files with 26 additions and 5 deletions

View File

@@ -145,6 +145,8 @@ def _get_error_from_upload_form(form_errors):
@main.route("/services/<uuid:service_id>/preview-letter/<uuid:file_id>")
@user_has_permissions('send_messages')
def uploaded_letter_preview(service_id, file_id):
re_upload_form = PDFUploadForm()
metadata = get_letter_metadata(service_id, file_id)
original_filename = metadata.get('filename')
page_count = metadata.get('page_count')
@@ -186,6 +188,7 @@ def uploaded_letter_preview(service_id, file_id):
error_code=error_shortcode,
form=form,
recipient=recipient,
re_upload_form=re_upload_form
)

View File

@@ -52,7 +52,7 @@
{{ file_upload(
form.file,
action=url_for('.send_messages', service_id=current_service.id, template_id=template.id),
button_text='Re-upload your file'
button_text='Upload your file again'
) }}
</div>
<a href="#content" class="back-to-top-link">Back to top</a>

View File

@@ -3,14 +3,28 @@
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/radios.html" import radios %}
{% from "components/page-header.html" import govuk_back_link %}
{% from "components/file-upload.html" import file_upload %}
{% block service_page_title %}
{{ original_filename }}
{% endblock %}
{% block maincolumn_content %}
{{ govuk_back_link(url_for('main.upload_letter', service_id=current_service.id)) }}
{% if status == 'invalid' and message %}
{% include "partials/check/letter-validation-failed-banner.html" %}
<div class="js-stick-at-top-when-scrolling">
<div class="form-group">
{{ file_upload(
re_upload_form.file,
action=url_for('main.upload_letter', service_id=current_service.id),
button_text='Upload your file again'
) }}
</div>
<a href="#content" class="back-to-top-link">Back to top</a>
</div>
{% elif current_service.trial_mode %}
{% call banner_wrapper(type='dangerous') %}
{% with
@@ -21,8 +35,7 @@
{% endcall %}
{% else %}
{{ page_header(
original_filename,
back_link=url_for('main.upload_letter', service_id=current_service.id)
original_filename
) }}
{% endif %}

View File

@@ -417,7 +417,7 @@ def test_upload_csv_file_with_errors_shows_check_page_with_errors(
assert 'There is a problem with invalid.csv' in content
assert '+447700900986' in content
assert 'Missing' in content
assert 'Re-upload your file' in content
assert 'Upload your file again' in content
@pytest.mark.parametrize('file_contents, expected_error,', [

View File

@@ -265,7 +265,7 @@ def test_post_upload_letter_with_invalid_file(mocker, client_request, fake_uuid)
)
assert page.find('div', class_='banner-dangerous').find('h1', {"data-error-type": 'content-outside-printable-area'})
assert not page.find('button', {'type': 'submit'})
assert not page.find('button', {'class': 'button', 'type': 'submit'})
def test_post_upload_letter_shows_letter_preview_for_invalid_file(mocker, client_request, fake_uuid):
@@ -298,6 +298,9 @@ def test_post_upload_letter_shows_letter_preview_for_invalid_file(mocker, client
assert 'The Queen' not in page.text
assert len(page.select('.letter-postage')) == 0
assert page.find("a", {"class": "govuk-back-link"})["href"] == "/services/{}/upload-letter".format(SERVICE_ONE_ID)
assert page.find("label", {"class": "file-upload-button"})
letter_images = page.select('main img')
assert len(letter_images) == 1
assert letter_images[0]['src'] == url_for(
@@ -357,6 +360,8 @@ def test_uploaded_letter_preview(
assert page.find('h1').text == 'my_letter.pdf'
assert page.find('div', class_='letter-sent')
assert not page.find("label", {"class": "file-upload-button"})
assert page.find('button', {'class': 'button', 'type': 'submit'})
def test_uploaded_letter_preview_does_not_show_send_button_if_service_in_trial_mode(