Revert "Merge pull request #1328 from alphagov/notification-page-reworked"

This reverts commit 1797162248, reversing
changes made to 95b4d9eb31.
This commit is contained in:
Chris Hill-Scott
2017-06-23 15:56:25 +01:00
parent 5c0f6796e4
commit b450a349a3
21 changed files with 195 additions and 182 deletions

View File

@@ -14,10 +14,6 @@ from flask import (
stream_with_context
)
from flask_login import login_required
from notifications_utils.template import (
Template,
WithSubjectTemplate,
)
from werkzeug.datastructures import MultiDict
from app import (
@@ -114,7 +110,21 @@ def view_job(service_id, job_id):
'views/jobs/job.html',
finished=(total_notifications == processed_notifications),
uploaded_file_name=job['original_file_name'],
template_id=job['template'],
template=get_template(
service_api_client.get_service_template(
service_id=service_id,
template_id=job['template'],
version=job['template_version']
)['data'],
current_service,
letter_preview_url=url_for(
'.view_template_version_preview',
service_id=service_id,
template_id=job['template'],
version=job['template_version'],
filetype='png',
),
),
status=request.args.get('status', ''),
updates_url=url_for(
".view_job_updates",
@@ -261,7 +271,7 @@ def get_notifications(service_id, message_type, status_override=None):
),
'notifications': render_template(
'views/activity/notifications.html',
notifications=add_preview_of_content_to_notifications(notifications['notifications']),
notifications=notifications['notifications'],
page=page,
prev_page=prev_page,
next_page=next_page,
@@ -350,11 +360,6 @@ def get_job_partials(job):
notifications = notification_api_client.get_notifications_for_service(
job['service'], job['id'], status=filter_args['status']
)
template = service_api_client.get_service_template(
service_id=current_service['id'],
template_id=job['template'],
version=job['template_version']
)['data']
return {
'counts': render_template(
'partials/count.html',
@@ -363,7 +368,7 @@ def get_job_partials(job):
),
'notifications': render_template(
'partials/jobs/notifications.html',
notifications=add_preview_of_content_to_notifications(notifications['notifications']),
notifications=notifications['notifications'],
more_than_one_page=bool(notifications.get('links', {}).get('next')),
percentage_complete=(job['notifications_requested'] / job['notification_count'] * 100),
download_link=url_for(
@@ -374,26 +379,10 @@ def get_job_partials(job):
),
help=get_help_argument(),
time_left=get_time_left(job['created_at']),
job=job,
template=template,
template_version=job['template_version'],
job=job
),
'status': render_template(
'partials/jobs/status.html',
job=job
),
}
def add_preview_of_content_to_notifications(notifications):
return (
dict(
preview_of_content=(
str(Template(notification['template'], notification['personalisation']))
if notification['template']['template_type'] == 'sms' else
WithSubjectTemplate(notification['template'], notification['personalisation']).subject
),
**notification
)
for notification in notifications
)

View File

@@ -10,7 +10,6 @@ from flask_login import login_required
from app import (
notification_api_client,
job_api_client,
current_service
)
from app.main import main
@@ -40,34 +39,27 @@ def get_status_arg(filter_args):
return REQUESTED_STATUSES
@main.route("/services/<service_id>/notification/<notification_id>")
@main.route("/services/<service_id>/one-off-notification/<notification_id>")
@login_required
@user_has_permissions('view_activity', admin_override=True)
def view_notification(service_id, notification_id):
notification = notification_api_client.get_notification(service_id, notification_id)
template = get_template(
notification['template'],
current_service,
letter_preview_url=url_for(
'.view_template_version_preview',
service_id=service_id,
template_id=notification['template']['id'],
version=notification['template_version'],
filetype='png',
),
show_recipient=True,
)
template.values = notification['personalisation']
if notification['job']:
job = job_api_client.get_job(service_id, notification['job']['id'])['data']
else:
job = None
return render_template(
'views/notifications/notification.html',
finished=(notification['status'] in (DELIVERED_STATUSES + FAILURE_STATUSES)),
uploaded_file_name='Report',
template=template,
job=job,
template=get_template(
notification['template'],
current_service,
letter_preview_url=url_for(
'.view_template_version_preview',
service_id=service_id,
template_id=notification['template']['id'],
version=notification['template_version'],
filetype='png',
),
),
status=request.args.get('status'),
updates_url=url_for(
".view_notification_updates",
service_id=service_id,
@@ -76,13 +68,11 @@ def view_notification(service_id, notification_id):
help=get_help_argument()
),
partials=get_single_notification_partials(notification),
created_by=notification.get('created_by'),
created_at=notification['created_at'],
help=get_help_argument()
)
@main.route("/services/<service_id>/notification/<notification_id>.json")
@main.route("/services/<service_id>/one-off-notification/<notification_id>.json")
@user_has_permissions('view_activity', admin_override=True)
def view_notification_updates(service_id, notification_id):
return jsonify(**get_single_notification_partials(
@@ -90,10 +80,49 @@ def view_notification_updates(service_id, notification_id):
))
def _get_single_notification_counts(notification, help_argument):
return [
(
label,
query_param,
url_for(
".view_notification",
service_id=notification['service'],
notification_id=notification['id'],
status=query_param,
help=help_argument
),
count
) for label, query_param, count in [
[
'total', '',
1
],
[
'sending', 'sending',
int(notification['status'] in SENDING_STATUSES)
],
[
'delivered', 'delivered',
int(notification['status'] in DELIVERED_STATUSES)
],
[
'failed', 'failed',
int(notification['status'] in FAILURE_STATUSES)
]
]
]
def get_single_notification_partials(notification):
status_args = get_status_arg(request.args)
return {
'counts': render_template(
'partials/count.html',
counts=_get_single_notification_counts(notification, request.args.get('help', 0)),
status=status_args
),
'notifications': render_template(
'partials/notifications/notifications.html',
notification=notification,