mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-04-07 11:01:02 -04:00
Always show download link for PDF
This feature is useful for people to try the letter thing out and see how it feels, maybe print one on their own printer before incurring cost.
This commit is contained in:
@@ -592,7 +592,6 @@ def _check_messages(service_id, template_id, upload_id, preview_row, letters_as_
|
||||
trying_to_send_letters_in_trial_mode=all((
|
||||
current_service.trial_mode,
|
||||
template.template_type == 'letter',
|
||||
not request.args.get('from_test'),
|
||||
)),
|
||||
required_recipient_columns=OrderedSet(recipients.recipient_column_headers) - optional_address_columns,
|
||||
preview_row=preview_row,
|
||||
|
||||
@@ -50,13 +50,12 @@
|
||||
)}}" class='page-footer'>
|
||||
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}" />
|
||||
{% if not error %}
|
||||
{% if template.template_type != 'letter' or not request.args.from_test %}
|
||||
<button type="submit" class="button">Send 1 {{ message_count_label(1, template.template_type, suffix='') }}</button>
|
||||
{% else %}
|
||||
<a href="{{ url_for('main.check_messages_preview', service_id=current_service.id, template_id=template.id, upload_id=upload_id, filetype='pdf') }}" download class="button">Download as a printable PDF</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<a href="{{ back_link }}" class="page-footer-back-link">Back</a>
|
||||
{% if template.template_type == 'letter' %}
|
||||
<a href="{{ url_for('main.check_notification_preview', service_id=current_service.id, template_id=template.id, filetype='pdf') }}" download>Download as a printable PDF</a>
|
||||
{% endif %}
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -1964,7 +1964,7 @@ def test_test_message_can_only_be_sent_now(
|
||||
def test_letter_can_only_be_sent_now(
|
||||
client_request,
|
||||
mocker,
|
||||
service_one,
|
||||
mock_get_live_service,
|
||||
mock_get_service_letter_template,
|
||||
mock_get_users_by_service,
|
||||
mock_get_service_statistics,
|
||||
@@ -1978,10 +1978,9 @@ def test_letter_can_only_be_sent_now(
|
||||
|
||||
content = client_request.get(
|
||||
'main.check_messages',
|
||||
service_id=service_one['id'],
|
||||
service_id=SERVICE_ONE_ID,
|
||||
upload_id=fake_uuid,
|
||||
template_id=fake_uuid,
|
||||
from_test=True
|
||||
)
|
||||
|
||||
assert 'name="scheduled_for"' not in content
|
||||
@@ -2657,7 +2656,11 @@ def test_check_messages_column_error_doesnt_show_optional_columns(
|
||||
)
|
||||
|
||||
|
||||
def test_generate_test_letter_doesnt_block_in_trial_mode(
|
||||
@pytest.mark.parametrize('extra_args', (
|
||||
{},
|
||||
{'from_test': True},
|
||||
))
|
||||
def test_letters_from_csv_files_dont_have_download_link(
|
||||
client_request,
|
||||
mocker,
|
||||
mock_get_service,
|
||||
@@ -2668,6 +2671,7 @@ def test_generate_test_letter_doesnt_block_in_trial_mode(
|
||||
mock_get_service_statistics,
|
||||
mock_get_job_doesnt_exist,
|
||||
mock_s3_set_metadata,
|
||||
extra_args,
|
||||
):
|
||||
|
||||
mocker.patch('app.main.views.send.s3download', return_value="""
|
||||
@@ -2692,14 +2696,69 @@ def test_generate_test_letter_doesnt_block_in_trial_mode(
|
||||
service_id=SERVICE_ONE_ID,
|
||||
template_id=fake_uuid,
|
||||
upload_id=fake_uuid,
|
||||
from_test=True,
|
||||
_test_page_title=False,
|
||||
**extra_args
|
||||
)
|
||||
|
||||
assert normalize_spaces(
|
||||
page.select_one('.banner-dangerous').text
|
||||
) == normalize_spaces(
|
||||
'You can’t send this letter '
|
||||
'In trial mode you can only preview how your letters will look '
|
||||
'Skip to file contents'
|
||||
)
|
||||
|
||||
assert len(page.select('.letter img')) == 5
|
||||
assert not page.select('a[download]')
|
||||
|
||||
|
||||
@pytest.mark.parametrize('service_mock', (
|
||||
mock_get_service,
|
||||
mock_get_live_service,
|
||||
))
|
||||
def test_one_off_letters_have_download_link(
|
||||
client_request,
|
||||
mocker,
|
||||
api_user_active,
|
||||
mock_get_service_letter_template,
|
||||
mock_has_permissions,
|
||||
fake_uuid,
|
||||
mock_get_users_by_service,
|
||||
mock_get_service_statistics,
|
||||
service_mock,
|
||||
):
|
||||
|
||||
service_mock(mocker, api_user_active)
|
||||
|
||||
mocker.patch(
|
||||
'app.main.views.send.get_page_count_for_letter',
|
||||
return_value=5,
|
||||
)
|
||||
|
||||
with client_request.session_transaction() as session:
|
||||
session['recipient'] = None
|
||||
session['placeholders'] = {
|
||||
'address_line_1': 'First Last',
|
||||
'address_line_2': '123 Street',
|
||||
'postcode': 'SW1 1AA',
|
||||
}
|
||||
|
||||
page = client_request.get(
|
||||
'main.check_notification',
|
||||
service_id=SERVICE_ONE_ID,
|
||||
template_id=fake_uuid,
|
||||
_test_page_title=False,
|
||||
)
|
||||
|
||||
assert not page.select('.banner-dangerous')
|
||||
|
||||
assert len(page.select('.letter img')) == 5
|
||||
assert page.select_one('a.button').text == 'Download as a printable PDF'
|
||||
|
||||
assert page.select_one('a[download]')['href'] == url_for(
|
||||
'main.check_notification_preview',
|
||||
service_id=SERVICE_ONE_ID,
|
||||
template_id=fake_uuid,
|
||||
filetype='pdf',
|
||||
)
|
||||
assert page.select_one('a[download]').text == 'Download as a printable PDF'
|
||||
|
||||
|
||||
def test_check_messages_shows_over_max_row_error(
|
||||
|
||||
Reference in New Issue
Block a user