Merge branch 'master' into rationalise-configs

Conflicts:
	app/main/views/jobs.py
This commit is contained in:
Martyn Inglis
2016-09-07 10:34:53 +01:00
11 changed files with 184 additions and 86 deletions

View File

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

View File

@@ -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
@@ -66,9 +67,9 @@ def view_jobs(service_id):
return render_template(
'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'
])
job for job in job_api_client.get_job(service_id)['data']
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)
@@ -237,9 +250,7 @@ def view_notification(service_id, job_id, notification_id):
return render_template(
'views/notification.html',
message=[
message for message in messages if message['id'] == notification_id
][0],
message=[message for message in messages if message['id'] == notification_id][0],
delivered_at=now,
uploaded_at=now,
job_id=job_id