mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-09 17:09:49 -04:00
Merge pull request #1024 from alphagov/add-letters-templates-2
Let users upload a CSV file of addresses against a letter template
This commit is contained in:
7
app/templates/components/letter.html
Normal file
7
app/templates/components/letter.html
Normal file
@@ -0,0 +1,7 @@
|
||||
{% macro letter(
|
||||
body
|
||||
) %}
|
||||
<div class="letter">
|
||||
{{ body }}
|
||||
</div>
|
||||
{% endmacro %}
|
||||
@@ -11,5 +11,11 @@
|
||||
{%- else -%}
|
||||
emails
|
||||
{%- endif -%}
|
||||
{%- elif template_type == 'letter' -%}
|
||||
{%- if count == 1 -%}
|
||||
letter
|
||||
{%- else -%}
|
||||
letters
|
||||
{%- endif -%}
|
||||
{%- endif %} {{ suffix }}
|
||||
{%- endmacro %}
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
<li><a href="{{ url_for('.choose_template', service_id=current_service.id, template_type='email') }}">Email templates</a></li>
|
||||
<li><a href="{{ url_for('.choose_template', service_id=current_service.id, template_type='sms') }}">Text message templates</a></li>
|
||||
{% if current_service.can_send_letters %}
|
||||
<li><a href="{{ url_for('.letters', service_id=current_service.id) }}">Letter templates</a></li>
|
||||
<li><a href="{{ url_for('.choose_template', service_id=current_service.id, template_type='letter') }}">Letter templates</a></li>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if current_user.has_permissions(['manage_users', 'manage_settings'], admin_override=True) %}
|
||||
|
||||
@@ -15,10 +15,24 @@
|
||||
You can still send {{ remaining_messages }} messages today, but
|
||||
{% endif %}
|
||||
‘{{ original_file_name }}’ contains
|
||||
{{ count_of_recipients }} {{ recipients.recipient_column_header }}
|
||||
{%- if count_of_recipients != 1 -%}
|
||||
{{ 'es' if 'email address' == recipients.recipient_column_header else 's' }}
|
||||
{%- endif %}.
|
||||
{{ count_of_recipients }}
|
||||
{% if count_of_recipients == 1 -%}
|
||||
{%- if template.template_type == 'email' -%}
|
||||
email address
|
||||
{%- elif template.template_type == 'sms' -%}
|
||||
phone number
|
||||
{%- elif template.template_type == 'letter' -%}
|
||||
address
|
||||
{%- endif -%}
|
||||
{%- else -%}
|
||||
{%- if template.template_type == 'email' -%}
|
||||
email addresses
|
||||
{%- elif template.template_type == 'sms' -%}
|
||||
phone numbers
|
||||
{%- elif template.template_type == 'letter' -%}
|
||||
addresses
|
||||
{%- endif -%}
|
||||
{%- endif -%}.
|
||||
</p>
|
||||
{% endcall %}
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
<h2 class="heading-medium">Formatting</h2>
|
||||
<p>
|
||||
To put a title in your template, use a hash:
|
||||
</p>
|
||||
<div class="panel panel-border-wide">
|
||||
<p>
|
||||
# This is a title
|
||||
</p>
|
||||
</div>
|
||||
<p>
|
||||
To make bullet points, use asterisks:
|
||||
</p>
|
||||
<div class="panel panel-border-wide">
|
||||
<p>
|
||||
* point 1<br/>
|
||||
* point 2<br/>
|
||||
* point 3<br/>
|
||||
</p>
|
||||
</div>
|
||||
@@ -3,6 +3,7 @@
|
||||
{% from "components/email-message.html" import email_message %}
|
||||
{% from "components/radios.html" import radio_select %}
|
||||
{% from "components/sms-message.html" import sms_message %}
|
||||
{% from "components/letter.html" import letter %}
|
||||
{% from "components/table.html" import list_table, field, text_field, index_field, hidden_field_heading %}
|
||||
{% from "components/file-upload.html" import file_upload %}
|
||||
{% from "components/page-footer.html" import page_footer %}
|
||||
@@ -30,7 +31,7 @@
|
||||
{% endcall %}
|
||||
</div>
|
||||
|
||||
{% elif not recipients.has_recipient_column %}
|
||||
{% elif not recipients.has_recipient_columns %}
|
||||
|
||||
<div class="bottom-gutter">
|
||||
{% call banner_wrapper(type='dangerous') %}
|
||||
@@ -148,7 +149,9 @@
|
||||
)}}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% elif 'letter' == template.template_type %}
|
||||
{{ letter(template.formatted_as_markup if errors else template.replaced|safe) }}
|
||||
{% endif %}
|
||||
|
||||
{% if errors %}
|
||||
{% if request.args.from_test %}
|
||||
@@ -190,7 +193,9 @@
|
||||
{{ item['columns'][column].data if item['columns'][column].data != None }}
|
||||
{% endcall %}
|
||||
{% else %}
|
||||
{{ text_field(item['columns'][column].data) }}
|
||||
{% call field() %}
|
||||
{{ item['columns'][column].data if item['columns'][column].data != None }}
|
||||
{% endcall %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% if item['columns'].get(None) %}
|
||||
|
||||
36
app/templates/views/edit-letter-template.html
Normal file
36
app/templates/views/edit-letter-template.html
Normal file
@@ -0,0 +1,36 @@
|
||||
{% extends "withnav_template.html" %}
|
||||
{% from "components/textbox.html" import textbox %}
|
||||
{% from "components/page-footer.html" import page_footer %}
|
||||
|
||||
{% block page_title %}
|
||||
{{ heading_action }} letter template – GOV.UK Notify
|
||||
{% endblock %}
|
||||
|
||||
{% block maincolumn_content %}
|
||||
|
||||
<h1 class="heading-large">
|
||||
{{ heading_action }} letter template
|
||||
</h1>
|
||||
|
||||
<form method="post">
|
||||
<div class="grid-row">
|
||||
<div class="column-three-quarters">
|
||||
{{ textbox(form.name, width='1-1', hint='Your recipients won’t see this', rows=10) }}
|
||||
{{ textbox(form.subject, width='1-1', highlight_tags=True, rows=2) }}
|
||||
</div>
|
||||
<div class="column-three-quarters">
|
||||
{{ textbox(form.template_content, highlight_tags=True, width='1-1', rows=8) }}
|
||||
{{ page_footer(
|
||||
'Save',
|
||||
delete_link=url_for('.delete_service_template', service_id=current_service.id, template_id=template_id) if template_id or None,
|
||||
delete_link_text='Delete this template'
|
||||
) }}
|
||||
</div>
|
||||
<aside class="column-whole">
|
||||
{% include "partials/templates/guidance-formatting-letters.html" %}
|
||||
{% include "partials/templates/guidance-personalisation.html" %}
|
||||
</aside>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
@@ -1,19 +0,0 @@
|
||||
{% extends "withnav_template.html" %}
|
||||
{% from "components/sms-message.html" import sms_message %}
|
||||
{% from "components/email-message.html" import email_message %}
|
||||
{% from "components/page-footer.html" import page_footer %}
|
||||
{% from "components/file-upload.html" import file_upload %}
|
||||
{% from "components/table.html" import list_table, text_field, index_field, index_field_heading %}
|
||||
|
||||
{% block page_title %}
|
||||
Upload recipients – GOV.UK Notify
|
||||
{% endblock %}
|
||||
|
||||
{% block maincolumn_content %}
|
||||
|
||||
<h1 class="heading-large">Letters 📩📨💌📮📜📑👌👌👌</h1>
|
||||
<p>
|
||||
[insert content here]
|
||||
</p>
|
||||
|
||||
{% endblock %}
|
||||
@@ -1,6 +1,7 @@
|
||||
{% extends "withnav_template.html" %}
|
||||
{% from "components/sms-message.html" import sms_message %}
|
||||
{% from "components/email-message.html" import email_message %}
|
||||
{% from "components/letter.html" import letter %}
|
||||
{% from "components/page-footer.html" import page_footer %}
|
||||
{% from "components/file-upload.html" import file_upload %}
|
||||
{% from "components/table.html" import list_table, field, text_field, index_field, index_field_heading %}
|
||||
@@ -38,17 +39,19 @@
|
||||
recipient='',
|
||||
show_placeholder_for_recipient=True
|
||||
) }}
|
||||
{% elif 'letter' == template.template_type %}
|
||||
{{ letter(template.formatted_as_markup) }}
|
||||
{% endif %}
|
||||
|
||||
<form method="post">
|
||||
{% call(item, row_number) list_table(
|
||||
example,
|
||||
caption="Fill in the {}".format('field' if template.placeholders|length == 1 else 'fields'),
|
||||
field_headings=[recipient_column] + template.placeholders|list
|
||||
caption="Fill in the {}".format('field' if (recipient_columns + template.placeholders|list)|length == 2 else 'fields'),
|
||||
field_headings=recipient_columns + template.placeholders|list
|
||||
) %}
|
||||
{% for column in item %}
|
||||
{% call field() %}
|
||||
{% if loop.index > 1 %}
|
||||
{% if loop.index > 1 or template.template_type == 'letter' %}
|
||||
<label class="visuallyhidden" for="placeholder-field-{{ loop.index }}">{{ column }}</label>
|
||||
<input class="form-control form-control-1-1 " data-module="" name="{{ column }}" rows="8" type="text" value="" id="placeholder-field-{{ loop.index }}">
|
||||
{% else %}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{% extends "withnav_template.html" %}
|
||||
{% from "components/sms-message.html" import sms_message %}
|
||||
{% from "components/email-message.html" import email_message %}
|
||||
{% from "components/letter.html" import letter %}
|
||||
{% from "components/page-footer.html" import page_footer %}
|
||||
{% from "components/file-upload.html" import file_upload %}
|
||||
{% from "components/table.html" import list_table, text_field, index_field, index_field_heading %}
|
||||
@@ -30,6 +31,8 @@
|
||||
recipient='',
|
||||
show_placeholder_for_recipient=True
|
||||
) }}
|
||||
{% elif 'letter' == template.template_type %}
|
||||
{{ letter(template.formatted_as_markup) }}
|
||||
{% endif %}
|
||||
|
||||
<div class="page-footer bottom-gutter">
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
{% from "components/email-message.html" import email_message %}
|
||||
{% from "components/sms-message.html" import sms_message %}
|
||||
{% from "components/letter.html" import letter %}
|
||||
|
||||
<div class="column-two-thirds">
|
||||
{% if 'email' == template.template_type %}
|
||||
@@ -14,6 +15,8 @@
|
||||
template.formatted_as_markup,
|
||||
id=template.id
|
||||
) }}
|
||||
{% elif 'letter' == template.template_type %}
|
||||
{{ letter(template.formatted_as_markup) }}
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="column-one-third">
|
||||
|
||||
@@ -21,7 +21,9 @@
|
||||
|
||||
{{ page_footer(
|
||||
secondary_link=url_for('.choose_template', service_id=current_service.id, template_type=template.template_type),
|
||||
secondary_link_text='All {} templates'.format('email' if 'email' == template.template_type else 'text message')
|
||||
secondary_link_text='All {} templates'.format(
|
||||
'email' if 'email' == template.template_type else 'text message' if 'sms' == template.template_type else 'letter'
|
||||
)
|
||||
) }}
|
||||
|
||||
{% endblock %}
|
||||
|
||||
Reference in New Issue
Block a user