Merge branch 'master' of https://github.com/alphagov/notifications-admin into vb-platform-admin-admin

This commit is contained in:
venusbb
2017-09-19 14:44:06 +01:00
9 changed files with 77 additions and 14 deletions

View File

@@ -0,0 +1,30 @@
(function() {
"use strict";
let disableSubmitButtons = function(event) {
$submitButton = $(this).find(':submit');
if ($submitButton.data('clicked') == 'true') {
event.preventDefault();
} else {
$submitButton.data('clicked', 'true');
setTimeout(renableSubmitButton($submitButton), 1500);
}
};
let renableSubmitButton = $submitButton => () => {
$submitButton.data('clicked', '');
};
$('form').on('submit', disableSubmitButtons);
})();

View File

@@ -180,6 +180,7 @@ details summary {
th, th,
td { td {
@include core-19; @include core-19;
word-wrap: break-word;
} }
thead { thead {

View File

@@ -459,15 +459,17 @@ def check_messages(service_id, template_type, upload_id):
data['recipients'].too_many_rows or data['recipients'].too_many_rows or
not data['count_of_recipients'] or not data['count_of_recipients'] or
not data['recipients'].has_recipient_columns or not data['recipients'].has_recipient_columns or
data['recipients'].missing_column_headers or data['recipients'].missing_column_headers
data['trying_to_send_letters_in_trial_mode']
): ):
return render_template('views/check/column-errors.html', **data) return render_template('views/check/column-errors.html', **data)
if data['row_errors']: if data['row_errors']:
return render_template('views/check/row-errors.html', **data) return render_template('views/check/row-errors.html', **data)
if data['errors']: if (
data['errors'] or
data['trying_to_send_letters_in_trial_mode']
):
return render_template('views/check/column-errors.html', **data) return render_template('views/check/column-errors.html', **data)
return render_template('views/check/ok.html', **data) return render_template('views/check/ok.html', **data)

View File

@@ -53,7 +53,7 @@
) }} ) }}
{{ tick_cross( {{ tick_cross(
user.has_permissions(permissions=['manage_templates']), user.has_permissions(permissions=['manage_templates']),
'Manage templates' 'Add and edit templates'
) }} ) }}
{{ tick_cross( {{ tick_cross(
user.has_permissions(permissions=['manage_users', 'manage_settings']), user.has_permissions(permissions=['manage_users', 'manage_settings']),
@@ -94,7 +94,7 @@
) }} ) }}
{{ tick_cross( {{ tick_cross(
user.has_permissions(permissions=['manage_templates']), user.has_permissions(permissions=['manage_templates']),
'Edit templates' 'Add and edit templates'
) }} ) }}
{{ tick_cross( {{ tick_cross(
user.has_permissions(permissions=['manage_users', 'manage_settings']), user.has_permissions(permissions=['manage_users', 'manage_settings']),

View File

@@ -67,6 +67,7 @@ gulp.task('javascripts', () => gulp
paths.src + 'javascripts/listEntry.js', paths.src + 'javascripts/listEntry.js',
paths.src + 'javascripts/liveSearch.js', paths.src + 'javascripts/liveSearch.js',
paths.src + 'javascripts/errorTracking.js', paths.src + 'javascripts/errorTracking.js',
paths.src + 'javascripts/preventDuplicateFormSubmissions.js',
paths.src + 'javascripts/main.js' paths.src + 'javascripts/main.js'
]) ])
.pipe(plugins.prettyerror()) .pipe(plugins.prettyerror())

View File

@@ -1,21 +1,18 @@
ago==0.0.9 ago==0.0.9
cffi==1.10.0 cffi==1.11.0
Flask==0.12.2 Flask==0.12.2
Flask-Script==2.0.5 Flask-Script==2.0.5
Flask-WTF==0.14.2 Flask-WTF==0.14.2
Flask-Login==0.4.0 Flask-Login==0.4.0
boto3==1.4.7 boto3==1.4.7
py-gfm==0.1.3
blinker==1.4 blinker==1.4
lxml==3.8.0
pyexcel==0.5.3 pyexcel==0.5.3
pyexcel-io==0.5.1 pyexcel-io==0.5.1
pyexcel-xls==0.5.0 pyexcel-xls==0.5.0
pyexcel-xlsx==0.5.0.1 pyexcel-xlsx==0.5.0.1
pyexcel-ods3==0.5.0 pyexcel-ods3==0.5.0
pytz==2017.2 pytz==2017.2
six==1.10.0
gunicorn==19.7.1 gunicorn==19.7.1
whitenoise==3.3.0 #manages static assets whitenoise==3.3.0 #manages static assets

View File

@@ -1,7 +1,7 @@
-r requirements.txt -r requirements.txt
pycodestyle==2.3.1 pycodestyle==2.3.1
pytest==3.2.2 pytest==3.2.2
pytest-mock==1.6.2 pytest-mock==1.6.3
pytest-cov==2.5.1 pytest-cov==2.5.1
pytest-xdist==1.20.0 pytest-xdist==1.20.0
coveralls==1.2.0 coveralls==1.2.0

View File

@@ -19,21 +19,21 @@ from tests.conftest import (
active_user_with_permissions, active_user_with_permissions,
( (
'Test User (you) ' 'Test User (you) '
'Can Send messages Can Manage templates Can Manage service Can Access API keys' 'Can Send messages Can Add and edit templates Can Manage service Can Access API keys'
), ),
), ),
( (
active_user_view_permissions, active_user_view_permissions,
( (
'Test User With Permissions (you) ' 'Test User With Permissions (you) '
'Cant Send messages Cant Manage templates Cant Manage service Cant Access API keys' 'Cant Send messages Cant Add and edit templates Cant Manage service Cant Access API keys'
), ),
), ),
( (
active_user_manage_template_permission, active_user_manage_template_permission,
( (
'Test User With Permissions (you) ' 'Test User With Permissions (you) '
'Cant Send messages Can Manage templates Cant Manage service Cant Access API keys' 'Cant Send messages Can Add and edit templates Cant Manage service Cant Access API keys'
), ),
), ),
]) ])
@@ -255,7 +255,7 @@ def test_manage_users_shows_invited_user(
assert page.h1.string.strip() == 'Team members' assert page.h1.string.strip() == 'Team members'
assert normalize_spaces(page.select('.user-list')[1].text) == ( assert normalize_spaces(page.select('.user-list')[1].text) == (
'invited_user@test.gov.uk ' 'invited_user@test.gov.uk '
'Cant Send messages Cant Edit templates Cant Manage service Can Access API keys ' 'Cant Send messages Cant Add and edit templates Cant Manage service Can Access API keys '
'Cancel invitation' 'Cancel invitation'
) )

View File

@@ -1631,6 +1631,38 @@ def test_check_messages_shows_trial_mode_error_for_letters(
assert not error assert not error
def test_check_messages_shows_data_errors_before_trial_mode_errors_for_letters(
mocker,
client_request,
mock_get_service_letter_template,
mock_has_permissions,
mock_get_users_by_service,
mock_get_detailed_service_for_today,
):
mocker.patch('app.main.views.send.s3download', return_value='\n'.join(
['address_line_1,address_line_2,postcode,'] +
[' , ,11SW1 1AA']
))
with client_request.session_transaction() as session:
session['upload_data'] = {'template_id': '', 'original_file_name': 'example.xlsx'}
page = client_request.get(
'main.check_messages',
service_id=SERVICE_ONE_ID,
template_type='letter',
upload_id=uuid.uuid4(),
_test_page_title=False,
)
assert normalize_spaces(page.select_one('.banner-dangerous').text) == (
'There is a problem with example.xlsx '
'You need to enter missing data in 1 row '
'Skip to file contents'
)
def test_generate_test_letter_doesnt_block_in_trial_mode( def test_generate_test_letter_doesnt_block_in_trial_mode(
client_request, client_request,
mocker, mocker,