Merge pull request #522 from alphagov/sms_msg_limit

Sms msg limit
This commit is contained in:
NIcholas Staples
2016-04-29 12:29:45 +01:00
7 changed files with 158 additions and 36 deletions

View File

@@ -237,7 +237,6 @@ def check_messages(service_id, template_type, upload_id):
session['upload_data']['notification_count'] = len(list(recipients.rows))
session['upload_data']['valid'] = not recipients.has_errors
return render_template(
'views/check.html',
recipients=recipients,

View File

@@ -2,6 +2,7 @@ from flask import request, render_template, redirect, url_for, flash, abort
from flask_login import login_required
from notifications_utils.template import Template
from notifications_python_client.errors import HTTPError
from app.main import main
from app.utils import user_has_permissions
@@ -44,23 +45,31 @@ def view_template(service_id, template_id):
@login_required
@user_has_permissions('manage_templates', admin_override=True)
def add_service_template(service_id, template_type):
if template_type not in ['sms', 'email']:
abort(404)
form = form_objects[template_type]()
if form.validate_on_submit():
service_api_client.create_service_template(
form.name.data,
template_type,
form.template_content.data,
service_id,
form.subject.data if hasattr(form, 'subject') else None
)
return redirect(
url_for('.choose_template', service_id=service_id, template_type=template_type)
)
try:
service_api_client.create_service_template(
form.name.data,
template_type,
form.template_content.data,
service_id,
form.subject.data if hasattr(form, 'subject') else None
)
except HTTPError as e:
if e.status_code == 400:
if 'content' in e.message and any(['character count greater than' in x for x in e.message['content']]):
form.template_content.errors.extend(e.message['content'])
else:
raise e
else:
raise e
else:
return redirect(
url_for('.choose_template', service_id=service_id, template_type=template_type)
)
return render_template(
'views/edit-{}-template.html'.format(template_type),
@@ -79,20 +88,29 @@ def edit_service_template(service_id, template_id):
form = form_objects[template['template_type']](**template)
if form.validate_on_submit():
service_api_client.update_service_template(
template_id,
form.name.data,
template['template_type'],
form.template_content.data,
service_id,
form.subject.data if getattr(form, 'subject', None) else None
)
return redirect(url_for(
'.choose_template',
service_id=service_id,
template_type=template['template_type']
))
try:
service_api_client.update_service_template(
template_id,
form.name.data,
template['template_type'],
form.template_content.data,
service_id,
form.subject.data if getattr(form, 'subject', None) else None
)
except HTTPError as e:
if e.status_code == 400:
if 'content' in e.message and any(['character count greater than' in x for x in e.message['content']]):
form.template_content.errors.extend(e.message['content'])
else:
raise e
else:
raise e
else:
return redirect(url_for(
'.choose_template',
service_id=service_id,
template_type=template['template_type']
))
return render_template(
'views/edit-{}-template.html'.format(template['template_type']),
form=form,

View File

@@ -39,7 +39,7 @@ class UserApiClient(BaseAPIClient):
try:
return self.get_user_by_email(email_address)
except HTTPError as e:
if HTTPError.status_code == 404:
if e.status_code == 404:
return None
def get_users(self):

View File

@@ -109,19 +109,19 @@
) %}
{{ index_field(item.index + 2) }}
{% for column in recipients.column_headers %}
{% if item[column].error %}
{% if item['columns'][column].error %}
{% call field() %}
<span class="table-field-error">
<span class="table-field-error-label">{{ item[column].error }}</span>
{{ item[column].data if item[column].data != None }}
<span class="table-field-error-label">{{ item['columns'][column].error }}</span>
{{ item['columns'][column].data if item['columns'][column].data != None }}
</span>
{% endcall %}
{% elif item[column].ignore %}
{% elif item['columns'][column].ignore %}
{% call field(status='default') %}
{{ item[column].data if item[column].data != None }}
{{ item['columns'][column].data if item['columns'][column].data != None }}
{% endcall %}
{% else %}
{{ text_field(item[column].data) }}
{{ text_field(item['columns'][column].data) }}
{% endif %}
{% endfor %}
{% endcall %}