mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-02 17:48:50 -04:00
Merge pull request #113 from alphagov/real-templates
Use real templates when sending text messages
This commit is contained in:
@@ -1,12 +0,0 @@
|
|||||||
templates = [
|
|
||||||
{
|
|
||||||
'type': 'sms',
|
|
||||||
'name': 'Confirmation with details Jan 2016',
|
|
||||||
'body': '((name)), we’ve received your ((thing)). We’ll contact you again within 1 week.'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'type': 'sms',
|
|
||||||
'name': 'Confirmation Jan 2016',
|
|
||||||
'body': 'We’ve received your payment. We’ll contact you again within 1 week.'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -24,12 +24,7 @@ from app.main.uploader import (
|
|||||||
s3upload,
|
s3upload,
|
||||||
s3download
|
s3download
|
||||||
)
|
)
|
||||||
|
from app.main.dao import templates_dao
|
||||||
from ._templates import templates
|
|
||||||
|
|
||||||
sms_templates = [
|
|
||||||
template for template in templates if template['type'] == 'sms'
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
@main.route("/services/<int:service_id>/sms/send", methods=['GET', 'POST'])
|
@main.route("/services/<int:service_id>/sms/send", methods=['GET', 'POST'])
|
||||||
@@ -51,8 +46,16 @@ def send_sms(service_id):
|
|||||||
flash(str(e))
|
flash(str(e))
|
||||||
return redirect(url_for('.send_sms', service_id=service_id))
|
return redirect(url_for('.send_sms', service_id=service_id))
|
||||||
|
|
||||||
|
try:
|
||||||
|
templates = templates_dao.get_service_templates(service_id)['data']
|
||||||
|
except HTTPError as e:
|
||||||
|
if e.status_code == 404:
|
||||||
|
abort(404)
|
||||||
|
else:
|
||||||
|
raise e
|
||||||
|
|
||||||
return render_template('views/send-sms.html',
|
return render_template('views/send-sms.html',
|
||||||
message_templates=sms_templates,
|
templates=templates,
|
||||||
form=form,
|
form=form,
|
||||||
service_id=service_id)
|
service_id=service_id)
|
||||||
|
|
||||||
@@ -69,7 +72,9 @@ def check_sms(service_id, upload_id):
|
|||||||
'views/check-sms.html',
|
'views/check-sms.html',
|
||||||
upload_result=upload_result,
|
upload_result=upload_result,
|
||||||
filename='someupload_file_name.csv',
|
filename='someupload_file_name.csv',
|
||||||
message_template=sms_templates[0]['body'],
|
message_template='''
|
||||||
|
((name)), we’ve received your ((thing)). We’ll contact you again within 1 week.
|
||||||
|
''',
|
||||||
service_id=service_id
|
service_id=service_id
|
||||||
)
|
)
|
||||||
elif request.method == 'POST':
|
elif request.method == 'POST':
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
</h3>
|
</h3>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if input_name %}
|
{% if input_name %}
|
||||||
<input class="sms-message-picker" type="radio" id="{{ input_name }}-{{ input_index }}" name="{{ input_name }}" />
|
<input class="sms-message-picker" type="radio" id="{{ input_name }}-{{ input_index }}" name="{{ input_name }}" value="{{ input_index }}" />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="sms-message-wrapper{% if input_name %}-with-radio{% endif %}">
|
<div class="sms-message-wrapper{% if input_name %}-with-radio{% endif %}">
|
||||||
{{ body|placeholders }}
|
{{ body|placeholders }}
|
||||||
|
|||||||
@@ -17,9 +17,9 @@
|
|||||||
|
|
||||||
<fieldset class='form-group'>
|
<fieldset class='form-group'>
|
||||||
<legend class="heading-medium">1. Choose text message template</legend>
|
<legend class="heading-medium">1. Choose text message template</legend>
|
||||||
{% for template in message_templates %}
|
{% for template in templates %}
|
||||||
{{ sms_message(
|
{{ sms_message(
|
||||||
template.body, name=template.name, input_name='template', input_index=loop.index
|
template.content, name=template.name, input_name='template', input_index=template.id
|
||||||
) }}
|
) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|||||||
@@ -4,12 +4,32 @@ from flask import url_for
|
|||||||
import moto
|
import moto
|
||||||
|
|
||||||
|
|
||||||
|
def test_choose_template_page(app_,
|
||||||
|
db_,
|
||||||
|
db_session,
|
||||||
|
mock_send_sms,
|
||||||
|
mock_active_user,
|
||||||
|
mock_get_by_email,
|
||||||
|
mock_get_service_templates):
|
||||||
|
with app_.test_request_context():
|
||||||
|
with app_.test_client() as client:
|
||||||
|
client.login(mock_active_user)
|
||||||
|
upload_data = {'file': (BytesIO(''.encode('utf-8')), 'emtpy.csv')}
|
||||||
|
response = client.get(url_for('main.send_sms', service_id=123))
|
||||||
|
|
||||||
|
assert response.status_code == 200
|
||||||
|
content = response.get_data(as_text=True)
|
||||||
|
assert 'template_one' in content
|
||||||
|
assert 'template one content' in content
|
||||||
|
|
||||||
|
|
||||||
def test_upload_empty_csvfile_returns_to_upload_page(app_,
|
def test_upload_empty_csvfile_returns_to_upload_page(app_,
|
||||||
db_,
|
db_,
|
||||||
db_session,
|
db_session,
|
||||||
mock_send_sms,
|
mock_send_sms,
|
||||||
mock_active_user,
|
mock_active_user,
|
||||||
mock_get_by_email):
|
mock_get_by_email,
|
||||||
|
mock_get_service_templates):
|
||||||
with app_.test_request_context():
|
with app_.test_request_context():
|
||||||
with app_.test_client() as client:
|
with app_.test_client() as client:
|
||||||
client.login(mock_active_user)
|
client.login(mock_active_user)
|
||||||
@@ -25,7 +45,8 @@ def test_upload_empty_csvfile_returns_to_upload_page(app_,
|
|||||||
@moto.mock_s3
|
@moto.mock_s3
|
||||||
def test_upload_csvfile_with_invalid_phone_shows_check_page_with_errors(app_,
|
def test_upload_csvfile_with_invalid_phone_shows_check_page_with_errors(app_,
|
||||||
mock_active_user,
|
mock_active_user,
|
||||||
mock_get_by_email):
|
mock_get_by_email,
|
||||||
|
mock_get_service_template):
|
||||||
|
|
||||||
contents = 'phone\n+44 123\n+44 456'
|
contents = 'phone\n+44 123\n+44 456'
|
||||||
file_data = (BytesIO(contents.encode('utf-8')), 'invalid.csv')
|
file_data = (BytesIO(contents.encode('utf-8')), 'invalid.csv')
|
||||||
|
|||||||
Reference in New Issue
Block a user