diff --git a/app/main/dao/templates_dao.py b/app/main/dao/templates_dao.py index 461af615c..72d47bcd2 100644 --- a/app/main/dao/templates_dao.py +++ b/app/main/dao/templates_dao.py @@ -33,6 +33,10 @@ class TemplatesBrowsableItem(BrowsableItem): def title(self): return self._item['name'] + @property + def type(self): + return self._item['template_type'] + @property def link(self): return url_for( @@ -47,3 +51,6 @@ class TemplatesBrowsableItem(BrowsableItem): @property def hint(self): return "Some service template hint here" + + def get_field(self, field): + return self._item.get(field, None) diff --git a/app/main/views/templates.py b/app/main/views/templates.py index f075601e9..57866a839 100644 --- a/app/main/views/templates.py +++ b/app/main/views/templates.py @@ -4,7 +4,8 @@ from flask_login import login_required from app.main import main from app.main.forms import TemplateForm from app.main.dao.services_dao import get_service_by_id -from app.main.dao import templates_dao as dao +from app.main.dao import templates_dao as tdao +from app.main.dao import services_dao as sdao from client.errors import HTTPError @@ -12,7 +13,7 @@ from client.errors import HTTPError @login_required def manage_service_templates(service_id): try: - templates = dao.get_service_templates(service_id)['data'] + templates = tdao.get_service_templates(service_id)['data'] except HTTPError as e: if e.status_code == 404: abort(404) @@ -21,14 +22,14 @@ def manage_service_templates(service_id): return render_template( 'views/manage-templates.html', service_id=service_id, - templates=templates) + templates=[tdao.TemplatesBrowsableItem(x) for x in templates]) @main.route("/services//templates/add", methods=['GET', 'POST']) @login_required def add_service_template(service_id): try: - service = dao.get_service_by_id(service_id)['data'] + service = sdao.get_service_by_id(service_id)['data'] except HTTPError as e: if e.status_code == 404: abort(404) @@ -38,7 +39,7 @@ def add_service_template(service_id): form = TemplateForm() if form.validate_on_submit(): - dao.insert_service_template( + tdao.insert_service_template( form.name.data, form.template_type.data, form.content.data, service_id) return redirect(url_for( '.manage_service_templates', service_id=service_id)) @@ -53,16 +54,16 @@ def add_service_template(service_id): @login_required def edit_service_template(service_id, template_id): try: - template = dao.get_service_template(service_id, template_id)['data'] + template = tdao.get_service_template(service_id, template_id)['data'] except HTTPError as e: if e.status_code == 404: abort(404) else: raise e - form = TemplateForm(form_data=template) + form = TemplateForm(**template) if form.validate_on_submit(): - dao.update_service_template( + tdao.update_service_template( template_id, form.name.data, form.template_type.data, form.content.data, service_id) return redirect(url_for('.manage_service_templates', service_id=service_id)) @@ -79,17 +80,17 @@ def edit_service_template(service_id, template_id): @login_required def delete_service_template(service_id, template_id): try: - template = dao.get_service_template(service_id, template_id)['data'] + template = tdao.get_service_template(service_id, template_id)['data'] except HTTPError as e: if e.status_code == 404: abort(404) else: raise e - form = TemplateForm(form_data=template) + form = TemplateForm(**template) - if form.validate_on_submit(): - dao.delete_service_template(service_id, template_id) + if request.method == 'POST': + tdao.delete_service_template(service_id, template_id) return redirect(url_for('.manage_service_templates', service_id=service_id)) flash('Are you sure you want to delete ‘{}’?'.format(form.name.data), 'delete') diff --git a/app/templates/views/edit-template.html b/app/templates/views/edit-template.html index 07155a454..861e7c4ea 100644 --- a/app/templates/views/edit-template.html +++ b/app/templates/views/edit-template.html @@ -12,6 +12,7 @@ GOV.UK Notify | Edit template
{{ textbox(form.name) }} + {{ textbox(form.template_type) }} {{ textbox(form.content, highlight_tags=True) }} {{ page_footer( 'Save', diff --git a/app/templates/views/manage-templates.html b/app/templates/views/manage-templates.html index 50e541959..149f443b6 100644 --- a/app/templates/views/manage-templates.html +++ b/app/templates/views/manage-templates.html @@ -18,18 +18,18 @@ GOV.UK Notify | Manage templates Create new template {% for template in templates %} - {% if template.type == 'sms' %} + {% if template.get_field('template_type') == 'sms' %} {{ sms_message( - template.content, - name=template.name, - edit_link=url_for('.edit_service_template', service_id=template.service, template_id=template.id) + template.get_field('content'), + name=template.title, + edit_link=url_for('.edit_service_template', service_id=template.get_field('service'), template_id=template.get_field('id')) ) }} - {% elif template.type == 'email' %} + {% elif template.get_field('template_type') == 'email' %} {{ email_message( - "template subject", - template.content, - name=template.name, - edit_link=url_for('.edit_service_template', service_id=template.service, template_id=template.id) + template.get_field('subject'), + template.get_field('content'), + name=template.get_field('name'), + edit_link=url_for('.edit_service_template', service_id=template.get_field('service'), template_id=template.get_field('id')) ) }} {% endif %} {% endfor %}