Move code for rendering messages/templates → utils

Utils is better structured to handle the logic of what thing to show
for what template type, especially now that what we show for different
template types in different contexts has diverged significantly.

See https://github.com/alphagov/notifications-utils/commit/6b39c1a for
an example of this code moving into utils

Depends on and implements:
https://github.com/alphagov/notifications-utils/pull/84

The main reason for doing this is to get Paul’s fix for the misaligned
CSV columns: https://github.com/alphagov/notifications-utils/pull/87
This commit is contained in:
Chris Hill-Scott
2016-12-05 11:51:19 +00:00
parent 40f30ca13a
commit 18d11aa013
19 changed files with 63 additions and 315 deletions

View File

@@ -28,7 +28,7 @@ from app.main.uploader import (
s3download
)
from app import job_api_client, service_api_client, current_service, user_api_client
from app.utils import user_has_permissions, get_errors_for_csv, Spreadsheet, get_help_argument
from app.utils import user_has_permissions, get_errors_for_csv, Spreadsheet, get_help_argument, get_renderer
def get_page_headings(template_type):
@@ -90,8 +90,7 @@ def choose_template(service_id, template_type):
templates=[
Template(
template,
prefix=current_service['name'],
sms_sender=current_service['sms_sender']
renderer=get_renderer(template_type, current_service, show_recipient=False)
) for template in service_api_client.get_service_templates(service_id)['data']
if template['template_type'] == template_type
],
@@ -105,10 +104,9 @@ def choose_template(service_id, template_type):
@user_has_permissions('send_texts', 'send_emails', 'send_letters')
def send_messages(service_id, template_id):
template = Template(
service_api_client.get_service_template(service_id, template_id)['data'],
prefix=current_service['name'],
sms_sender=current_service['sms_sender']
service_api_client.get_service_template(service_id, template_id)['data']
)
template.renderer = get_renderer(template.template_type, current_service, show_recipient=True)
form = CsvUploadForm()
if form.validate_on_submit():
@@ -169,6 +167,8 @@ def send_test(service_id, template_id):
sms_sender=current_service['sms_sender']
)
template.renderer = get_renderer(template.template_type, current_service, show_recipient=True)
if len(template.placeholders) == 0 or request.method == 'POST':
upload_id = s3upload(
service_id,
@@ -237,11 +237,11 @@ def check_messages(service_id, template_type, upload_id):
service_api_client.get_service_template(
service_id,
session['upload_data'].get('template_id')
)['data'],
prefix=current_service['name'],
sms_sender=current_service['sms_sender']
)['data']
)
template.renderer = get_renderer(template_type, current_service, show_recipient=True)
recipients = RecipientCSV(
contents,
template_type=template.template_type,

View File

@@ -10,7 +10,7 @@ from notifications_utils.recipients import first_column_headings
from notifications_python_client.errors import HTTPError
from app.main import main
from app.utils import user_has_permissions
from app.utils import user_has_permissions, get_renderer
from app.main.forms import SMSTemplateForm, EmailTemplateForm, LetterTemplateForm
from app.main.views.send import get_example_csv_rows
from app import service_api_client, current_service, template_statistics_client
@@ -39,13 +39,15 @@ page_headings = {
admin_override=True, any_=True
)
def view_template(service_id, template_id):
template = Template(
service_api_client.get_service_template(service_id, template_id)['data']
)
template.renderer = get_renderer(
template.template_type, current_service, show_recipient=False, expand_emails=True
)
return render_template(
'views/templates/template.html',
template=Template(
service_api_client.get_service_template(service_id, template_id)['data'],
prefix=current_service['name'],
sms_sender=current_service['sms_sender']
)
template=template
)
@@ -61,13 +63,15 @@ def view_template(service_id, template_id):
any_=True
)
def view_template_version(service_id, template_id, version):
template = Template(
service_api_client.get_service_template(service_id, template_id, version)['data']
)
template.renderer = get_renderer(
template.template_type, current_service, show_recipient=False, expand_emails=True
)
return render_template(
'views/templates/template_history.html',
template=Template(
service_api_client.get_service_template(service_id, template_id, version)['data'],
prefix=current_service['name'],
sms_sender=current_service['sms_sender']
)
template=template
)
@@ -227,19 +231,18 @@ def delete_service_template(service_id, template_id):
any_=True
)
def view_template_versions(service_id, template_id):
versions = []
for template in service_api_client.get_service_template_versions(service_id, template_id)['data']:
template = Template(template)
template.renderer = get_renderer(
template.template_type, current_service, show_recipient=False, expand_emails=True
)
versions.append(template)
return render_template(
'views/templates/choose_history.html',
template=Template(
service_api_client.get_service_template(service_id, template_id)['data'],
prefix=current_service['name']
),
versions=[
Template(
template,
prefix=current_service['name'],
sms_sender=current_service['sms_sender']
) for template in service_api_client.get_service_template_versions(service_id, template_id)['data']
]
versions=versions
)