mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-05-05 08:31:00 -04:00
Merge pull request #922 from alphagov/cancelled-jobs
Let users cancel a job
This commit is contained in:
@@ -120,7 +120,7 @@ def get_dashboard_partials(service_id):
|
||||
job for job in jobs if job['job_status'] == 'scheduled'
|
||||
], key=lambda job: job['scheduled_for'])
|
||||
immediate_jobs = [
|
||||
job for job in jobs if job['job_status'] != 'scheduled'
|
||||
job for job in jobs if job['job_status'] not in ['scheduled', 'cancelled']
|
||||
]
|
||||
service = service_api_client.get_detailed_service(service_id)
|
||||
|
||||
|
||||
@@ -12,7 +12,8 @@ from flask import (
|
||||
jsonify,
|
||||
request,
|
||||
url_for,
|
||||
current_app
|
||||
current_app,
|
||||
redirect
|
||||
)
|
||||
from flask_login import login_required
|
||||
from werkzeug.datastructures import MultiDict
|
||||
@@ -67,7 +68,7 @@ def view_jobs(service_id):
|
||||
'views/jobs/jobs.html',
|
||||
jobs=add_rate_to_jobs([
|
||||
job for job in job_api_client.get_job(service_id)['data']
|
||||
if job['job_status'] != 'scheduled'
|
||||
if job['job_status'] not in ['scheduled', 'cancelled']
|
||||
])
|
||||
)
|
||||
|
||||
@@ -77,6 +78,10 @@ def view_jobs(service_id):
|
||||
@user_has_permissions('view_activity', admin_override=True)
|
||||
def view_job(service_id, job_id):
|
||||
job = job_api_client.get_job(service_id, job_id)['data']
|
||||
|
||||
if job['job_status'] == 'cancelled':
|
||||
abort(404)
|
||||
|
||||
filter_args = _parse_filter_args(request.args)
|
||||
filter_args['status'] = _set_status_filters(filter_args)
|
||||
|
||||
@@ -142,6 +147,14 @@ def view_job_csv(service_id, job_id):
|
||||
)
|
||||
|
||||
|
||||
@main.route("/services/<service_id>/jobs/<job_id>", methods=['POST'])
|
||||
@login_required
|
||||
@user_has_permissions('send_texts', 'send_emails', 'send_letters', admin_override=True)
|
||||
def cancel_job(service_id, job_id):
|
||||
job_api_client.cancel_job(service_id, job_id)
|
||||
return redirect(url_for('main.service_dashboard', service_id=service_id))
|
||||
|
||||
|
||||
@main.route("/services/<service_id>/jobs/<job_id>.json")
|
||||
@login_required
|
||||
@user_has_permissions('view_activity', admin_override=True)
|
||||
|
||||
Reference in New Issue
Block a user