diff --git a/app/templates/views/check.html b/app/templates/views/check.html index 3761f2642..021fe348e 100644 --- a/app/templates/views/check.html +++ b/app/templates/views/check.html @@ -13,31 +13,20 @@ {% block maincolumn_content %} - {% if count_of_recipients > (current_service.message_limit - statistics.get('emails_requested', 0) - statistics.get('sms_requested', 0)) %} + {% if not recipients.allowed_to_send_to and not recipients.missing_column_headers %}
{% call banner_wrapper(type='dangerous') %}

- Too many recipients -

- {% if statistics.emails_requested or statistics.sms_requested %} -

- You can only send {{ current_service.message_limit }} - messages per day - {%- if current_service.restricted %} - in trial mode - {%- endif -%} - . -

- {% endif %} -

- You can still send - {{ current_service.message_limit - statistics.emails_requested - statistics.sms_requested }} - messages today, but - ‘{{ original_file_name }}’ contains - {{ count_of_recipients }} {{ recipients.recipient_column_header }} + You can’t send to + {{ 'this' if count_of_recipients == 1 else 'these' }} + {{ recipients.recipient_column_header }} {%- if count_of_recipients != 1 -%} {{ 'es' if 'email address' == recipients.recipient_column_header else 's' }} - {%- endif -%}. + {%- endif %} + +

+ In trial mode you can only + send to yourself and members of your team

{% endcall %}
@@ -66,6 +55,34 @@ {% endif %} {% endcall %} + {% elif count_of_recipients > (current_service.message_limit - statistics.get('emails_requested', 0) - statistics.get('sms_requested', 0)) %} +
+ {% call banner_wrapper(type='dangerous') %} +

+ Too many recipients +

+ {% if statistics.emails_requested or statistics.sms_requested %} +

+ You can only send {{ current_service.message_limit }} + messages per day + {%- if current_service.restricted %} + in trial mode + {%- endif -%} + . +

+ {% endif %} +

+ You can still send + {{ current_service.message_limit - statistics.emails_requested - statistics.sms_requested }} + messages today, but + ‘{{ original_file_name }}’ contains + {{ count_of_recipients }} {{ recipients.recipient_column_header }} + {%- if count_of_recipients != 1 -%} + {{ 'es' if 'email address' == recipients.recipient_column_header else 's' }} + {%- endif -%}. +

+ {% endcall %} +
{% else %}

Check and confirm @@ -95,7 +112,7 @@ {% if ( errors or - count_of_recipients > (current_service.message_limit - statistics.get('emails_requested', 0) - statistics.get('sms_requested', 0)) + count_of_recipients > (current_service.message_limit - statistics.get('emails_requested', 0) - statistics.get('sms_requested', 0)) ) %} {% if request.args.from_test %} Back diff --git a/requirements.txt b/requirements.txt index 6ef9ed861..acc96b2f0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -18,4 +18,4 @@ pytz==2016.4 git+https://github.com/alphagov/notifications-python-client.git@1.0.0#egg=notifications-python-client==1.0.0 -git+https://github.com/alphagov/notifications-utils.git@5.2.5#egg=notifications-utils==5.2.5 +git+https://github.com/alphagov/notifications-utils.git@5.3.0#egg=notifications-utils==5.3.0 diff --git a/tests/app/main/views/test_send.py b/tests/app/main/views/test_send.py index 61fad0881..0141a3803 100644 --- a/tests/app/main/views/test_send.py +++ b/tests/app/main/views/test_send.py @@ -72,7 +72,7 @@ def test_upload_csvfile_with_errors_shows_check_page_with_errors( mocker, mock_login, mock_get_service, - mock_get_service_template, + mock_get_service_template_with_placeholders, mock_s3_upload, mock_has_permissions, mock_get_users_by_service, @@ -80,21 +80,27 @@ def test_upload_csvfile_with_errors_shows_check_page_with_errors( fake_uuid ): - contents = u'phone number,name\n+44 123,test1\n+44 456,test2' - mocker.patch('app.main.views.send.s3download', return_value=contents) + mocker.patch( + 'app.main.views.send.s3download', + return_value=""" + phone number,name + +447700900986 + +447700900986 + """ + ) with app_.test_request_context(): with app_.test_client() as client: client.login(api_user_active) initial_upload = client.post( url_for('main.send_messages', service_id=fake_uuid, template_id=fake_uuid), - data={'file': (BytesIO(contents.encode('utf-8')), 'invalid.csv')}, + data={'file': (BytesIO(''.encode('utf-8')), 'invalid.csv')}, content_type='multipart/form-data', follow_redirects=True ) reupload = client.post( url_for('main.check_messages', service_id=fake_uuid, template_type='sms', upload_id='abc123'), - data={'file': (BytesIO(contents.encode('utf-8')), 'invalid.csv')}, + data={'file': (BytesIO(''.encode('utf-8')), 'invalid.csv')}, content_type='multipart/form-data', follow_redirects=True ) @@ -102,9 +108,8 @@ def test_upload_csvfile_with_errors_shows_check_page_with_errors( assert response.status_code == 200 content = response.get_data(as_text=True) assert 'There was a problem with invalid.csv' in content - assert '+44 123' in content - assert '+44 456' in content - assert 'Not a UK mobile number' in content + assert '+447700900986' in content + assert 'Missing' in content assert 'Re-upload your file' in content @@ -354,7 +359,7 @@ def test_check_messages_should_revalidate_file_when_uploading_file( active_user_with_permissions, job_data, mock_create_job, - mock_get_service_template, + mock_get_service_template_with_placeholders, mock_s3_upload, mocker, mock_has_permissions, @@ -368,8 +373,8 @@ def test_check_messages_should_revalidate_file_when_uploading_file( 'app.main.views.send.s3download', return_value=""" phone number,name,,, - 123,test1,,, - 123,test2,,, + +447700900986,,,, + +447700900986,,,, """ ) with app_.test_request_context():