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(), 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 @cached_property
def all_template_folder_ids(self): def all_template_folder_ids(self):
return {folder['id'] for folder in self.all_template_folders} return {folder['id'] for folder in self.all_template_folders}

View File

@@ -15,7 +15,7 @@
{% endif %} {% endif %}
{% endif %} {% 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> <li><a href="{{ url_for('main.uploads', service_id=current_service.id) }}" {{ main_navigation.is_selected('uploads') }}>Uploads</a></li>
{% endif %} {% endif %}
<li><a href="{{ url_for('.manage_users', service_id=current_service.id) }}" {{ main_navigation.is_selected('team-members') }}>Team members</a></li> <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, jobs,
caption="Recent files uploaded", caption="Recent files uploaded",
caption_visible=False, 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=[ field_headings=[
'File', 'File',
'Sending', 'Sending',
'Delivered', 'Delivered',
'Failed' 'Failed'
], ],
field_headings_visible=True field_headings_visible=True if jobs else False
) %} ) %}
{% call row_heading() %} {% call row_heading() %}
<div class="file-list"> <div class="file-list">

View File

@@ -11,5 +11,10 @@
{{ scheduled_jobs|safe }} {{ scheduled_jobs|safe }}
{% include 'views/dashboard/_jobs.html' %} {% include 'views/dashboard/_jobs.html' %}
{{ previous_next_navigation(prev_page, next_page) }} {{ 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> </div>
{% endblock %} {% endblock %}

View File

@@ -8,9 +8,13 @@ from app.utils import normalize_spaces
from tests.conftest import SERVICE_ONE_ID 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) page = client_request.get('main.uploads', service_id=SERVICE_ONE_ID)
assert page.find('h1').text == 'Uploads' assert page.find('h1').text == 'Uploads'
assert page.find('a', text='Upload a letter').attrs['href'] == url_for( assert page.find('a', text='Upload a letter').attrs['href'] == url_for(
'main.upload_letter', service_id=SERVICE_ONE_ID 'main.upload_letter', service_id=SERVICE_ONE_ID