mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-23 15:57:23 -04:00
Merge pull request #3338 from alphagov/remove-permission-checks-uploads
Clean up the codebase after moving everyone to the new uploads page
This commit is contained in:
@@ -42,26 +42,10 @@ from app.utils import (
|
|||||||
@main.route("/services/<uuid:service_id>/jobs")
|
@main.route("/services/<uuid:service_id>/jobs")
|
||||||
@user_has_permissions()
|
@user_has_permissions()
|
||||||
def view_jobs(service_id):
|
def view_jobs(service_id):
|
||||||
jobs = current_service.get_page_of_jobs(page=request.args.get('page'))
|
return redirect(url_for(
|
||||||
|
'main.uploads',
|
||||||
prev_page = None
|
service_id=current_service.id,
|
||||||
if jobs.prev_page:
|
))
|
||||||
prev_page = generate_previous_dict('main.view_jobs', service_id, jobs.current_page)
|
|
||||||
next_page = None
|
|
||||||
if jobs.next_page:
|
|
||||||
next_page = generate_next_dict('main.view_jobs', service_id, jobs.current_page)
|
|
||||||
|
|
||||||
return render_template(
|
|
||||||
'views/jobs/jobs.html',
|
|
||||||
jobs=jobs,
|
|
||||||
prev_page=prev_page,
|
|
||||||
next_page=next_page,
|
|
||||||
show_scheduled_jobs=(
|
|
||||||
jobs.current_page == 1
|
|
||||||
and not current_user.has_permissions('view_activity')
|
|
||||||
and current_service.scheduled_jobs
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@main.route("/services/<uuid:service_id>/jobs/<uuid:job_id>")
|
@main.route("/services/<uuid:service_id>/jobs/<uuid:job_id>")
|
||||||
|
|||||||
@@ -498,10 +498,6 @@ 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}
|
||||||
|
|||||||
@@ -9,26 +9,22 @@
|
|||||||
{% block maincolumn_content %}
|
{% block maincolumn_content %}
|
||||||
<h1 class="heading-medium">Uploads</h1>
|
<h1 class="heading-medium">Uploads</h1>
|
||||||
<div class="dashboard">
|
<div class="dashboard">
|
||||||
{% if show_scheduled_jobs %}
|
|
||||||
{% with hide_heading = True %}
|
|
||||||
{% include 'views/jobs/_scheduled.html' %}
|
|
||||||
{% endwith %}
|
|
||||||
{% endif %}
|
|
||||||
{% if jobs %}
|
{% if jobs %}
|
||||||
{% include 'views/dashboard/_jobs.html' %}
|
{% include 'views/dashboard/_jobs.html' %}
|
||||||
{% endif %}
|
{% else %}
|
||||||
{% if not jobs and not show_scheduled_jobs %}
|
|
||||||
<p class="govuk-body">
|
<p class="govuk-body">
|
||||||
You have not uploaded any files recently.
|
You have not uploaded any files recently.
|
||||||
</p>
|
</p>
|
||||||
{% if current_service.has_permission('upload_letters') %}
|
{% if current_user.has_permissions('send_messages') %}
|
||||||
|
{% if current_service.has_permission('letter') %}
|
||||||
|
<p class="govuk-body">
|
||||||
|
Upload a letter and Notify will print, pack and post it for you.
|
||||||
|
</p>
|
||||||
|
{% endif %}
|
||||||
<p class="govuk-body">
|
<p class="govuk-body">
|
||||||
Upload a letter and Notify will print, pack and post it for you.
|
To upload a list of contact details, first <a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('main.choose_template', service_id=current_service.id) }}">choose a template</a>.
|
||||||
</p>
|
</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<p class="govuk-body">
|
|
||||||
To upload a list of contact details, first <a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('main.choose_template', service_id=current_service.id) }}">choose a template</a>.
|
|
||||||
</p>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{{ previous_next_navigation(prev_page, next_page) }}
|
{{ previous_next_navigation(prev_page, next_page) }}
|
||||||
{% if current_user.has_permissions('send_messages') %}
|
{% if current_user.has_permissions('send_messages') %}
|
||||||
@@ -38,14 +34,14 @@
|
|||||||
"element": "a",
|
"element": "a",
|
||||||
"text": "Upload a letter",
|
"text": "Upload a letter",
|
||||||
"href": url_for('.upload_letter', service_id=current_service.id),
|
"href": url_for('.upload_letter', service_id=current_service.id),
|
||||||
"classes": "govuk-button--secondary"
|
"classes": "govuk-button--secondary govuk-!-margin-right-3"
|
||||||
}) }}
|
}) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{{ govukButton({
|
{{ govukButton({
|
||||||
"element": "a",
|
"element": "a",
|
||||||
"text": "Upload an emergency contact list",
|
"text": "Upload an emergency contact list",
|
||||||
"href": url_for('.upload_contact_list', service_id=current_service.id),
|
"href": url_for('.upload_contact_list', service_id=current_service.id),
|
||||||
"classes": "govuk-button--secondary govuk-!-margin-left-3"
|
"classes": "govuk-button--secondary"
|
||||||
}) }}
|
}) }}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -18,131 +18,19 @@ from tests.conftest import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('user, expected_rows', [
|
def test_old_jobs_hub_redirects(
|
||||||
(create_active_user_with_permissions(), (
|
|
||||||
(
|
|
||||||
'File Status'
|
|
||||||
),
|
|
||||||
(
|
|
||||||
'export 1/1/2016.xls '
|
|
||||||
'Sent today at 12:12pm 1 sending 0 delivered 0 failed'
|
|
||||||
),
|
|
||||||
(
|
|
||||||
'all email addresses.xlsx '
|
|
||||||
'Sent today at 12:12pm 1 sending 0 delivered 0 failed'
|
|
||||||
),
|
|
||||||
(
|
|
||||||
'applicants.ods '
|
|
||||||
'Sent today at 12:12pm 1 sending 0 delivered 0 failed'
|
|
||||||
),
|
|
||||||
(
|
|
||||||
'thisisatest.csv '
|
|
||||||
'Sent today at 12:12pm 1 sending 0 delivered 0 failed'
|
|
||||||
),
|
|
||||||
)),
|
|
||||||
(create_active_caseworking_user(), (
|
|
||||||
(
|
|
||||||
'File Messages to be sent'
|
|
||||||
),
|
|
||||||
(
|
|
||||||
'even_later.csv '
|
|
||||||
'Sending 1 January 2016 at 11:09pm 1'
|
|
||||||
),
|
|
||||||
(
|
|
||||||
'send_me_later.csv '
|
|
||||||
'Sending 1 January 2016 at 11:09am 1'
|
|
||||||
),
|
|
||||||
(
|
|
||||||
'File Status'
|
|
||||||
),
|
|
||||||
(
|
|
||||||
'export 1/1/2016.xls '
|
|
||||||
'Sent today at 12:12pm 1 sending 0 delivered 0 failed'
|
|
||||||
),
|
|
||||||
(
|
|
||||||
'all email addresses.xlsx '
|
|
||||||
'Sent today at 12:12pm 1 sending 0 delivered 0 failed'
|
|
||||||
),
|
|
||||||
(
|
|
||||||
'applicants.ods '
|
|
||||||
'Sent today at 12:12pm 1 sending 0 delivered 0 failed'
|
|
||||||
),
|
|
||||||
(
|
|
||||||
'thisisatest.csv '
|
|
||||||
'Sent today at 12:12pm 1 sending 0 delivered 0 failed'
|
|
||||||
),
|
|
||||||
)),
|
|
||||||
])
|
|
||||||
@freeze_time("2012-12-12 12:12")
|
|
||||||
def test_jobs_page_shows_scheduled_jobs_if_user_doesnt_have_dashboard(
|
|
||||||
client_request,
|
client_request,
|
||||||
service_one,
|
|
||||||
active_user_with_permissions,
|
|
||||||
mock_get_jobs,
|
|
||||||
user,
|
|
||||||
expected_rows,
|
|
||||||
):
|
):
|
||||||
client_request.login(user)
|
client_request.get(
|
||||||
page = client_request.get('main.view_jobs', service_id=service_one['id'])
|
'main.view_jobs',
|
||||||
|
service_id=SERVICE_ONE_ID,
|
||||||
for index, row in enumerate(expected_rows):
|
_expected_status=302,
|
||||||
assert normalize_spaces(page.select('tr')[index].text) == row
|
_expected_redirect=url_for(
|
||||||
|
'main.uploads',
|
||||||
|
service_id=SERVICE_ONE_ID,
|
||||||
@pytest.mark.parametrize('user', [
|
_external=True,
|
||||||
create_active_user_with_permissions(),
|
)
|
||||||
create_active_caseworking_user(),
|
)
|
||||||
])
|
|
||||||
def test_get_jobs_shows_page_links(
|
|
||||||
client_request,
|
|
||||||
active_user_with_permissions,
|
|
||||||
mock_get_jobs,
|
|
||||||
user,
|
|
||||||
):
|
|
||||||
client_request.login(user)
|
|
||||||
page = client_request.get('main.view_jobs', service_id=SERVICE_ONE_ID)
|
|
||||||
|
|
||||||
assert 'Next page' in page.find('li', {'class': 'next-page'}).text
|
|
||||||
assert 'Previous page' in page.find('li', {'class': 'previous-page'}).text
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('user', [
|
|
||||||
create_active_user_with_permissions(),
|
|
||||||
create_active_caseworking_user(),
|
|
||||||
])
|
|
||||||
@freeze_time("2012-12-12 12:12")
|
|
||||||
def test_jobs_page_doesnt_show_scheduled_on_page_2(
|
|
||||||
client_request,
|
|
||||||
service_one,
|
|
||||||
active_user_with_permissions,
|
|
||||||
mock_get_jobs,
|
|
||||||
user,
|
|
||||||
):
|
|
||||||
client_request.login(user)
|
|
||||||
page = client_request.get('main.view_jobs', service_id=service_one['id'], page=2)
|
|
||||||
|
|
||||||
for index, row in enumerate((
|
|
||||||
(
|
|
||||||
'File Status'
|
|
||||||
),
|
|
||||||
(
|
|
||||||
'export 1/1/2016.xls '
|
|
||||||
'Sent today at 12:12pm 1 sending 0 delivered 0 failed'
|
|
||||||
),
|
|
||||||
(
|
|
||||||
'all email addresses.xlsx '
|
|
||||||
'Sent today at 12:12pm 1 sending 0 delivered 0 failed'
|
|
||||||
),
|
|
||||||
(
|
|
||||||
'applicants.ods '
|
|
||||||
'Sent today at 12:12pm 1 sending 0 delivered 0 failed'
|
|
||||||
),
|
|
||||||
(
|
|
||||||
'thisisatest.csv '
|
|
||||||
'Sent today at 12:12pm 1 sending 0 delivered 0 failed'
|
|
||||||
),
|
|
||||||
)):
|
|
||||||
assert normalize_spaces(page.select('tr')[index].text) == row
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('user', [
|
@pytest.mark.parametrize('user', [
|
||||||
|
|||||||
@@ -65,11 +65,11 @@ def test_all_users_have_upload_contact_list(
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('extra_permissions, expected_empty_message', (
|
@pytest.mark.parametrize('extra_permissions, expected_empty_message', (
|
||||||
(['letter'], (
|
([], (
|
||||||
'You have not uploaded any files recently. '
|
'You have not uploaded any files recently. '
|
||||||
'To upload a list of contact details, first choose a template.'
|
'To upload a list of contact details, first choose a template.'
|
||||||
)),
|
)),
|
||||||
(['letter', 'upload_letters'], (
|
(['letter'], (
|
||||||
'You have not uploaded any files recently. '
|
'You have not uploaded any files recently. '
|
||||||
'Upload a letter and Notify will print, pack and post it for you. '
|
'Upload a letter and Notify will print, pack and post it for you. '
|
||||||
'To upload a list of contact details, first choose a template.'
|
'To upload a list of contact details, first choose a template.'
|
||||||
|
|||||||
Reference in New Issue
Block a user