Put upload letters button on jobs page

This is going to become the one true ‘Uploads’ page, so it need the
sticky footer that takes users into the new upload letters journey.
This commit is contained in:
Chris Hill-Scott
2019-10-09 10:52:11 +01:00
parent a8722703b8
commit 7eb547a9e8
5 changed files with 20 additions and 5 deletions

View File

@@ -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}

View File

@@ -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 %}
<li><a href="{{ url_for('main.uploads', service_id=current_service.id) }}" {{ main_navigation.is_selected('uploads') }}>Uploads</a></li>
{% endif %}
<li><a href="{{ url_for('.manage_users', service_id=current_service.id) }}" {{ main_navigation.is_selected('team-members') }}>Team members</a></li>

View File

@@ -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() %}
<div class="file-list">

View File

@@ -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') %}
<div class="js-stick-at-bottom-when-scrolling">
<a href="{{ url_for('.upload_letter', service_id=current_service.id) }}" class="button-secondary" role="button">Upload a letter</a>
</div>
{% endif %}
</div>
{% endblock %}

View File

@@ -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