diff --git a/app/main/views/send.py b/app/main/views/send.py index 5bd1ffc37..6ca253755 100644 --- a/app/main/views/send.py +++ b/app/main/views/send.py @@ -523,9 +523,12 @@ def _check_messages(service_id, template_type, upload_id, preview_row, letters_a count_of_recipients = len(list(recipients.rows)) - if preview_row < count_of_recipients: - template.values = recipients[preview_row] - elif preview_row > 0: + if preview_row < 2: + abort(404) + + if preview_row < count_of_recipients + 2: + template.values = recipients[preview_row - 2] + elif preview_row > 2: abort(404) session['upload_data']['notification_count'] = count_of_recipients @@ -562,7 +565,7 @@ def _check_messages(service_id, template_type, upload_id, preview_row, letters_a @main.route("/services///check//row-", methods=['GET']) @login_required @user_has_permissions('send_texts', 'send_emails', 'send_letters') -def check_messages(service_id, template_type, upload_id, row_index=0): +def check_messages(service_id, template_type, upload_id, row_index=2): data = _check_messages(service_id, template_type, upload_id, row_index) @@ -590,7 +593,7 @@ def check_messages(service_id, template_type, upload_id, row_index=0): @main.route("/services///check//row-.", methods=['GET']) @login_required @user_has_permissions('send_texts', 'send_emails', 'send_letters') -def check_messages_preview(service_id, template_type, upload_id, filetype, row_index=0): +def check_messages_preview(service_id, template_type, upload_id, filetype, row_index=2): if filetype not in ('pdf', 'png'): abort(404) diff --git a/app/templates/views/check/ok.html b/app/templates/views/check/ok.html index 5724b3beb..aa9ca1cc8 100644 --- a/app/templates/views/check/ok.html +++ b/app/templates/views/check/ok.html @@ -60,10 +60,10 @@ ) %} {% call index_field() %} - {% if item.index == preview_row %} + {% if (item.index + 2) == preview_row %} {{ item.index + 2 }} {% else %} - {{ item.index + 2 }} + {{ item.index + 2 }} {% endif %} {% endcall %} diff --git a/tests/app/main/views/test_send.py b/tests/app/main/views/test_send.py index 70fa17051..606f877c1 100644 --- a/tests/app/main/views/test_send.py +++ b/tests/app/main/views/test_send.py @@ -472,13 +472,13 @@ def test_upload_valid_csv_redirects_to_check_page( 'Test Service: A, Template content with & entity', ), ( - {'row_index': 0}, + {'row_index': 2}, None, 'To: 07700900001', 'Test Service: A, Template content with & entity', ), ( - {'row_index': 2}, + {'row_index': 4}, True, 'To: 07700900003', 'Test Service: C, Template content with & entity', @@ -524,7 +524,7 @@ def test_upload_valid_csv_shows_preview_and_table( if expected_link_in_first_row: assert page.select_one('.table-field-index a')['href'] == url_for( - 'main.check_messages', service_id=SERVICE_ONE_ID, template_type='sms', upload_id=fake_uuid, row_index=0 + 'main.check_messages', service_id=SERVICE_ONE_ID, template_type='sms', upload_id=fake_uuid, row_index=2 ) else: assert not page.select_one('.table-field-index').select_one('a') @@ -546,9 +546,12 @@ def test_upload_valid_csv_shows_preview_and_table( @pytest.mark.parametrize('row_index, expected_status', [ - (0, 200), + (0, 404), + (1, 404), (2, 200), - (3, 404), + (3, 200), + (4, 200), + (5, 404), ]) def test_404_for_previewing_a_row_out_of_range( client_request, @@ -1480,11 +1483,11 @@ def test_can_start_letters_job( {'postcode': 'abc123', 'addressline1': '123 street'}, ), ( - {'row_index': 0}, + {'row_index': 2}, {'postcode': 'abc123', 'addressline1': '123 street'}, ), ( - {'row_index': 1}, + {'row_index': 3}, {'postcode': 'cba321', 'addressline1': '321 avenue'}, ), ])