diff --git a/app/models/service.py b/app/models/service.py index 3e3e93fd6..bf989cfeb 100644 --- a/app/models/service.py +++ b/app/models/service.py @@ -462,6 +462,10 @@ class Service(JSONModel): key=lambda folder: folder['name'].lower(), ) + @property + def can_upload_letters(self): + return self.has_permission('letter') and self.has_permission('upload_letters') + @cached_property def all_template_folder_ids(self): return {folder['id'] for folder in self.all_template_folders} diff --git a/app/templates/main_nav.html b/app/templates/main_nav.html index 7f6a1fa55..88c1e4eca 100644 --- a/app/templates/main_nav.html +++ b/app/templates/main_nav.html @@ -15,7 +15,7 @@ {% endif %} {% endif %} {% endif %} - {% if current_user.has_permissions('send_messages') and current_service.has_permission('letter') and current_service.has_permission('upload_letters') %} + {% if current_user.has_permissions('send_messages') and current_service.can_upload_letters %}
  • Uploads
  • {% endif %}
  • Team members
  • diff --git a/app/templates/views/dashboard/_jobs.html b/app/templates/views/dashboard/_jobs.html index 30250b6ce..75a142a76 100644 --- a/app/templates/views/dashboard/_jobs.html +++ b/app/templates/views/dashboard/_jobs.html @@ -6,14 +6,16 @@ jobs, caption="Recent files uploaded", caption_visible=False, - empty_message='You have not uploaded any files recently', + empty_message=( + 'Upload a letter and Notify will print, pack and post it for you.' if current_service.can_upload_letters else 'You have not uploaded any files recently' + ), field_headings=[ 'File', 'Sending', 'Delivered', 'Failed' ], - field_headings_visible=True + field_headings_visible=True if jobs else False ) %} {% call row_heading() %}
    diff --git a/app/templates/views/jobs/jobs.html b/app/templates/views/jobs/jobs.html index 7d9bbba01..928ec0bec 100644 --- a/app/templates/views/jobs/jobs.html +++ b/app/templates/views/jobs/jobs.html @@ -11,5 +11,10 @@ {{ scheduled_jobs|safe }} {% include 'views/dashboard/_jobs.html' %} {{ previous_next_navigation(prev_page, next_page) }} + {% if current_service.can_upload_letters and current_user.has_permissions('send_messages') %} +
    + Upload a letter +
    + {% endif %}
    {% endblock %} diff --git a/tests/app/main/views/test_uploads.py b/tests/app/main/views/test_uploads.py index 891972037..ab4d355b2 100644 --- a/tests/app/main/views/test_uploads.py +++ b/tests/app/main/views/test_uploads.py @@ -8,9 +8,13 @@ from app.utils import normalize_spaces from tests.conftest import SERVICE_ONE_ID -def test_get_upload_hub_page(client_request): +def test_get_upload_hub_page( + client_request, + service_one, + mock_get_jobs, +): + service_one['permissions'] += ['letter', 'upload_letters'] page = client_request.get('main.uploads', service_id=SERVICE_ONE_ID) - assert page.find('h1').text == 'Uploads' assert page.find('a', text='Upload a letter').attrs['href'] == url_for( 'main.upload_letter', service_id=SERVICE_ONE_ID