Merge branch 'master' into delete-letter-job-page

This commit is contained in:
Rebecca Law
2018-11-16 15:32:51 +00:00
4 changed files with 57 additions and 34 deletions

View File

@@ -423,10 +423,7 @@ ashbournetowncouncil.gov.uk:
owner: Ashbourne Town Council
crown: false
agreement_signed: false
ashfield-dc.gov.uk:
owner: Ashfield District Council
crown: false
agreement_signed: false
ashfield-dc.gov.uk: ashfield.gov.uk
ashfield.gov.uk:
owner: Ashfield District Council
crown: false
@@ -1537,7 +1534,7 @@ dorchester-tc.gov.uk:
dorsetcc.gov.uk:
owner: Dorset County Council
crown: false
agreement_signed: false
agreement_signed: true
dorsetforyou.gov.uk:
owner: Weymouth and Portland Borough Council
crown: false
@@ -3715,7 +3712,7 @@ rosstc-herefordshire.gov.uk:
rother.gov.uk:
owner: Rother District Council
crown: false
agreement_signed: false
agreement_signed: true
rotherham.gov.uk:
owner: Rotherham Borough Council
crown: false
@@ -5120,15 +5117,9 @@ worcester.gov.uk:
worcestershire.gov.uk:
owner: Worcestershire County Council
crown: false
agreement_signed: false
worcestershirehub.gov.uk:
owner: Worcestershire County Council
crown: false
agreement_signed: false
worcestershirets.gov.uk:
owner: Worcestershire County Council
crown: false
agreement_signed: false
agreement_signed: true
worcestershirehub.gov.uk: worcestershire.gov.uk
worcestershirets.gov.uk: worcestershire.gov.uk
worcsregservices.gov.uk:
owner: Bromsgrove District Council
crown: false

View File

@@ -216,10 +216,12 @@ def get_notifications(service_id, message_type, status_override=None):
abort(404)
filter_args = parse_filter_args(request.args)
filter_args['status'] = set_status_filters(filter_args)
service_data_retention_days = None
service_data_retention_days = service_api_client.get_service_data_retention_by_notification_type(
service_id, message_type
).get('days_of_retention', current_app.config['ACTIVITY_STATS_LIMIT_DAYS'])
if message_type is not None:
service_data_retention_days = service_api_client.get_service_data_retention_by_notification_type(
service_id, message_type
).get('days_of_retention', current_app.config['ACTIVITY_STATS_LIMIT_DAYS'])
if request.path.endswith('csv') and current_user.has_permissions('view_activity'):
return Response(

View File

@@ -58,6 +58,12 @@ class Service():
return self._dict[attr]
raise AttributeError('`{}` is not a service attribute'.format(attr))
def _get_by_id(self, things, id):
try:
return next(thing for thing in things if thing['id'] == id)
except StopIteration:
abort(404)
def update(self, **kwargs):
return service_api_client.update_service(self.id, **kwargs)
@@ -310,13 +316,7 @@ class Service():
]
def get_template_folder(self, folder_id):
try:
return next(
folder for folder in self.all_template_folders
if folder['id'] == folder_id
)
except StopIteration:
abort(404)
return self._get_by_id(self.all_template_folders, folder_id)
def is_folder_visible(self, template_folder_id, template_type='all'):
@@ -374,7 +374,4 @@ class Service():
)
def get_api_key(self, id):
try:
return next(key for key in self.api_keys if key['id'] == id)
except StopIteration:
abort(404)
return self._get_by_id(self.api_keys, id)

View File

@@ -21,10 +21,28 @@ from tests.conftest import (
@pytest.mark.parametrize(
"user,extra_args,expected_update_endpoint,page_title", [
(active_user_view_permissions, {'message_type': 'email'}, '/email.json', 'Emails'),
(active_user_view_permissions, {'message_type': 'sms'}, '/sms.json', 'Text messages'),
(active_caseworking_user, {}, '.json', 'Sent messages'),
"user,extra_args,expected_update_endpoint,expected_limit_days,page_title", [
(
active_user_view_permissions,
{'message_type': 'email'},
'/email.json',
7,
'Emails',
),
(
active_user_view_permissions,
{'message_type': 'sms'},
'/sms.json',
7,
'Text messages',
),
(
active_caseworking_user,
{},
'.json',
None,
'Sent messages',
),
]
)
@pytest.mark.parametrize(
@@ -76,6 +94,7 @@ def test_can_show_notifications(
user,
extra_args,
expected_update_endpoint,
expected_limit_days,
page_title,
status_argument,
expected_api_call,
@@ -131,7 +150,7 @@ def test_can_show_notifications(
assert 'to' not in query_dict
mock_get_notifications.assert_called_with(
limit_days=7,
limit_days=expected_limit_days,
page=expected_page_argument,
service_id=service_one['id'],
status=expected_api_call,
@@ -149,6 +168,20 @@ def test_can_show_notifications(
assert json_content.keys() == {'counts', 'notifications', 'service_data_retention_days'}
def test_can_show_notifications_if_data_retention_not_available(
client_request,
mock_get_notifications,
mock_get_service_statistics,
mock_has_no_jobs,
):
page = client_request.get(
'main.view_notifications',
service_id=SERVICE_ONE_ID,
status='sending,delivered,failed',
)
assert page.h1.text.strip() == 'Messages'
@pytest.mark.parametrize('user, query_parameters, expected_download_link', [
(
active_user_with_permissions,