big commit with letters removal

This commit is contained in:
stvnrlly
2022-12-05 15:33:44 -05:00
parent 92da56fe63
commit 944715ac46
151 changed files with 278 additions and 10116 deletions

View File

@@ -5,7 +5,3 @@
{% macro email_branding_preview(branding_style) %}
{{ branding_preview(branding_style, 'main.email_template') }}
{% endmacro %}
{% macro letter_branding_preview(branding_style) %}
{{ branding_preview(branding_style, 'main.letter_template') }}
{% endmacro %}

View File

@@ -147,7 +147,7 @@
{% macro notification_status_field(notification) %}
{% set displayed_on_single_line = notification.status in ['created', 'pending', 'pending-virus-check', 'sending', 'delivered', 'returned-letter', 'accepted', 'received'] %}
{% set displayed_on_single_line = notification.status in ['created', 'pending', 'pending-virus-check', 'sending', 'delivered', 'accepted', 'received'] %}
{% if not notification %}
{% call field(align='right') %}{% endcall %}
@@ -166,18 +166,10 @@
</a>
{% endif %}
<span class="status-hint">
{% if notification['notification_type'] == "letter" %}
{% if notification.status == 'permanent-failure' %}
{{ (notification.updated_at)|format_datetime_short }}
{% else %}
{{ (notification.created_at)|format_datetime_short }}
{% endif %}
{% else %}
{{ notification.status|format_notification_status_as_time(
notification.created_at|format_datetime_short,
(notification.updated_at or notification.created_at)|format_datetime_short
) }}
{% endif %}
{{ notification.status|format_notification_status_as_time(
notification.created_at|format_datetime_short,
(notification.updated_at or notification.created_at)|format_datetime_short
) }}
</span>
{% if displayed_on_single_line %}</span>{% endif %}
{% endcall %}

View File

@@ -1,8 +0,0 @@
<h1 h1 class="banner-title" data-module="track-error" data-error-type="letter-too-long" data-error-label="precompiled letter validation failed for service_id: {{ current_service.id }}">
Your letter is too long
</h1>
<p class="govuk-body">
Letters must be {{ letter_max_pages }} pages or less ({{ letter_max_pages // 2 }} double-sided sheets of paper).
<br>
Your letter is {{ page_count }} pages long.
</p>

View File

@@ -1,18 +0,0 @@
{% from "components/banner.html" import banner_wrapper %}
{% call banner_wrapper(type='dangerous') %}
{% if message is string %}
<h1 class="banner-title">
{{ message }}
</h1>
{% else %}
<h1 class="banner-title" data-module="track-error" data-error-type="{{ error_code }}" data-error-label="precompiled letter validation failed for service_id: {{ current_service.id }}">
{{ message.title }}
</h1>
{% if message.detail %}
<p class="govuk-body">
{{ message.detail | safe }}
</p>
{% endif %}
{% endif %}
{% endcall %}

View File

@@ -1,8 +0,0 @@
<h1 class='banner-title' data-module="track-error" data-error-type="Trying to send letters in trial mode" data-error-label="{{ upload_id }}">
You cannot send
{{ 'this letter' if count_of_recipients == 1 else 'these letters' }}
</h1>
<p class="govuk-body">
In <a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('.trial_mode_new') }}">trial mode</a> you
can only preview how your letters will look
</p>

View File

@@ -24,25 +24,18 @@
{% if notifications %}
<div class="dashboard-table bottom-gutter-3-2">
{% endif %}
{% if job.template_type == 'letter' %}
<div class="keyline-block bottom-gutter-1-2">
{% if job.still_processing %}
<p class="bottom-gutter hint">
Report is {{ "{:.0f}%".format(job.percentage_complete * 0.99) }} complete…
</p>
{% elif notifications %}
<p class="bottom-gutter">
<a href="{{ download_link }}" download class="govuk-link govuk-link--no-visited-state heading-small">Download this report (<abbr title="Comma separated values">CSV</abbr>)</a>
&emsp;
<span id="time-left">{{ time_left }}</span>
</p>
{% endif %}
{% if job.still_processing %}
<p class="{% if job.template_type != 'letter' %}bottom-gutter{% endif %} hint">
Report is {{ "{:.0f}%".format(job.percentage_complete * 0.99) }} complete…
</p>
{% elif notifications %}
<p class="{% if job.template_type != 'letter' %}bottom-gutter{% endif %}">
<a href="{{ download_link }}" download class="govuk-link govuk-link--no-visited-state heading-small">Download this report (<abbr title="Comma separated values">CSV</abbr>)</a>
&emsp;
<span id="time-left">{{ time_left }}</span>
</p>
{% endif %}
{% if job.template_type == 'letter' %}
</div>
{% endif %}
{% call(item, row_number) list_table(
notifications,
caption=uploaded_file_name,

View File

@@ -1,15 +0,0 @@
<h2 class="heading-medium">
Delivery times
</h2>
<p class="govuk-body">
Letters sent before 5:30pm are dispatched the next working day (Monday to Friday).
</p>
<p class="govuk-body">
First class letters are delivered one day after they're dispatched. Second class letters are delivered 2 days after they're dispatched.
</p>
<p class="govuk-body">
Royal Mail delivers from Monday to Saturday, excluding bank holidays.
</p>
<p class="govuk-body">
See a list of <a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('.pricing') + '#letters'}}">postage prices</a>.
</p>

View File

@@ -22,7 +22,6 @@ Agreement signed on behalf of: {{ organisation.agreement_signed_on_behalf_of_ema
Emails in next year: {{ service.volume_email|format_thousands }}
Text messages in next year: {{ service.volume_sms|format_thousands }}
Letters in next year: {{ service.volume_letter|format_thousands }}
Consent to research: {{ service.consent_to_research|format_yes_no }}
Other live services for that user: {{ user.live_services|format_yes_no }}

View File

@@ -52,16 +52,9 @@
<h1 class='banner-title' data-module="track-error" data-error-type="Missing recipient columns" data-error-label="{{ upload_id }}">
Theres a problem with your column names
</h1>
{% if template.template_type == 'letter' %}
<p class="govuk-body">
Your file needs at least 3 address columns, for example address line 1,
address line 2 and address line 3.
</p>
{% else %}
<p class="govuk-body">
Your file needs a column called {{ first_recipient_column }}.
</p>
{% endif %}
<p class="govuk-body">
Right now it has {{ recipients.column_headers | formatted_list(
prefix='one column, called ',
@@ -113,16 +106,6 @@
{% include "partials/check/not-allowed-to-send-to.html" %}
{% endwith %}
{% elif trying_to_send_letters_in_trial_mode %}
<div class="bottom-gutter">
{% with
count_of_recipients=count_of_recipients
%}
{% include "partials/check/trying-to-send-letters-in-trial-mode.html" %}
{% endwith %}
</div>
{% elif recipients.more_rows_than_can_send %}
{% include "partials/check/too-many-messages.html" %}
@@ -165,15 +148,7 @@
{% call index_field() %}
<span>
{% set displayed_index = item.index + 2 %}
{% if (
trying_to_send_letters_in_trial_mode and
(not errors or recipients.more_rows_than_can_send) and
displayed_index != preview_row
) %}
<a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('.check_messages', service_id=current_service.id, template_id=template.id, upload_id=upload_id, row_index=displayed_index, original_file_name=original_file_name) }}">{{ displayed_index }}</a>
{% else %}
{{ displayed_index }}
{% endif %}
{{ displayed_index }}
</span>
{% endcall %}
{% for column in column_headers %}

View File

@@ -21,12 +21,6 @@
{{ page_header('Preview of {}'.format(template.name)) }}
{% if letter_too_long %}
{% call banner_wrapper(type='dangerous') %}
{% include "partials/check/letter-too-long.html" %}
{% endcall %}
{% endif %}
{{ govukSkipLink({
"text": "Skip to file contents",
"href": "#" + file_contents_header_id
@@ -37,7 +31,7 @@
<form method="post" enctype="multipart/form-data" action="{{url_for('main.start_job', service_id=current_service.id, upload_id=upload_id)}}" class='page-footer'>
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}" />
<input type="hidden" name="contact_list_id" value="{{ request.args.get('contact_list_id', '') }}" />
{% if choose_time_form and template.template_type != 'letter' %}
{% if choose_time_form %}
{{ choose_time_form.scheduled_for(param_extensions={
'formGroup': {'classes': 'bottom-gutter-2-3'},
'attributes': {
@@ -47,18 +41,12 @@
}
}) }}
{% endif %}
{% if (template.template_type != 'letter' or not request.args.from_test) and not letter_too_long %}
{% set button_text %}
Send {{ count_of_recipients|message_count(template.template_type) }}
{% endset %}
{{ govukButton({ "text": button_text }) }}
{% else %}
{{ govukButton({
"element": "a",
"text": "Download as a PDF",
"href": url_for('no_cookie.check_messages_preview', service_id=current_service.id, template_id=template.id, upload_id=upload_id, filetype='pdf'),
}) }}
{% endif %}
{% set button_text %}
Send {{ count_of_recipients|message_count(template.template_type) }}
{% endset %}
{{ govukButton({ "text": button_text }) }}
</form>
</div>

View File

@@ -74,20 +74,6 @@
No content for this message
{% elif item.message_too_long %}
Message is too long
{% elif not item.as_postal_address.has_enough_lines %}
Address must be at least {{ letter_min_address_lines }} lines long
{% elif item.as_postal_address.has_too_many_lines %}
Address must be no more than {{ letter_max_address_lines }} lines long
{% elif not item.as_postal_address.has_valid_last_line %}
{% if item.as_postal_address.allow_international_letters %}
Last line of the address must be a UK postcode or another country
{% elif item.as_postal_address.international %}
You do not have permission to send letters to other countries
{% else %}
Last line of the address must be a real UK postcode
{% endif %}
{% elif item.as_postal_address.has_invalid_characters %}
Address lines must not start with any of the following characters: @ ( ) = [ ] ” \ / , < > ~
{% endif %}
</span>
{% endcall %}

View File

@@ -14,17 +14,4 @@
{% endif %}
</a>
{% endif %}
{% if current_service.has_returned_letters %}
<a id="total-returned-letters" class="govuk-link govuk-link--no-visited-state banner-dashboard" href="{{ url_for('main.returned_letter_summary', service_id=current_service.id) }}">
<span class="banner-dashboard-count">
{{ current_service.count_of_returned_letters_in_last_7_days|format_thousands }}
</span>
<span class="banner-dashboard-count-label">
returned {{ current_service.count_of_returned_letters_in_last_7_days|message_count_label('letter', suffix='') }}
</span>
<span class="banner-dashboard-meta">
latest report {{ current_service.date_of_most_recent_returned_letter_report|format_delta_days }}
</span>
</a>
{% endif %}
</div>

View File

@@ -7,7 +7,7 @@
caption="Recent files uploaded",
caption_visible=False,
empty_message=(
'Upload a letter and Notify will print, pack and post it for you.' if current_service.has_permission('letter') else 'You have not uploaded any files yet.'
'You have not uploaded any files yet.'
),
field_headings=[
'File',
@@ -62,29 +62,12 @@
suffix='waiting to send'
)
) }}
{% elif item.template_type == 'letter' %}
{{ big_number(
item.notification_count,
smallest=True,
label=item.notification_count|message_count_label(
item.template_type,
suffix=''
)
) }}
{% elif item.upload_type == 'contact_list' %}
{{ big_number(
item.row_count,
smallest=True,
label="saved {}".format(item.row_count|recipient_count_label(item.template_type))
) }}
{% elif item.pdf_letter %}
<p class="govuk-body letter-recipient-summary">
{% for line in item.recipient.splitlines() %}
{% if loop.index < 3 %}
{{ line }}<br>
{% endif %}
{% endfor %}
</p>
{% else %}
<div class="govuk-grid-row">
<div class="govuk-grid-column-one-third">

View File

@@ -19,19 +19,10 @@
) %}
{% call row_heading() %}
{% if item.is_precompiled_letter %}
<span class="template-statistics-table-template-name">
Provided as PDF
</span>
<span class="template-statistics-table-hint">
Letter
</span>
{% else %}
<a class="govuk-link govuk-link--no-visited-state template-statistics-table-template-name" href="{{ url_for('.view_template', service_id=current_service.id, template_id=item.template_id) }}">{{ item.template_name }}</a>
<span class="template-statistics-table-hint">
{{ 1|message_count_label(item.template_type, suffix='template')|capitalize }}
</span>
{% endif %}
{% endcall %}
{{ spark_bar_field(item.count, most_used_template_count, id=item.template_id) }}

View File

@@ -2,10 +2,6 @@
<nav>
<a class="govuk-link govuk-link--no-visited-state pill-separate-item" href="{{ url_for('.choose_template', service_id=current_service.id) }}">
<!-- {% if 'letter' in current_service.permissions %}
Write an email, text message or letter
{% else %} -->
Write an email or text message
<!-- {% endif %} -->
Write an email or text message
</a>
</nav>

View File

@@ -1,43 +0,0 @@
{% extends "withnav_template.html" %}
{% from "components/textbox.html" import textbox %}
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import sticky_page_footer %}
{% from "components/form.html" import form_wrapper %}
{% from "components/back-link/macro.njk" import govukBackLink %}
{% block service_page_title %}
{{ heading_action }} letter template
{% endblock %}
{% block backLink %}
{{ govukBackLink({
"href": url_for('main.view_template', service_id=current_service.id, template_id=template.id) if template else url_for('main.choose_template', service_id=current_service.id, template_folder_id=template_folder_id)
}) }}
{% endblock %}
{% block maincolumn_content %}
{{ page_header('{} letter template'.format(heading_action)) }}
{% call form_wrapper() %}
<div class="govuk-grid-row">
<div class="govuk-grid-column-five-sixths">
{{ form.name(param_extensions={
"classes": "govuk-!-width-full",
"hint": {"text": "Your recipients will not see this"}
}) }}
{{ textbox(form.subject, width='1-1', highlight_placeholders=True, rows=2) }}
{{ textbox(form.template_content, highlight_placeholders=True, width='1-1', rows=8) }}
{{ sticky_page_footer(
'Save'
) }}
</div>
<div class="govuk-grid-column-three-quarters">
{% include "partials/templates/guidance-formatting-letters.html" %}
{% include "partials/templates/guidance-personalisation.html" %}
{% include "partials/templates/guidance-optional-content.html" %}
</div>
</div>
{% endcall %}
{% endblock %}

View File

@@ -14,7 +14,6 @@
<!-- <ul class="list list-bullet">
<li><a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('main.features_email') }}">emails</a></li>
<li><a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('main.features_sms') }}">text messages</a></li>
<li><a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('main.features_letters') }}">letters</a></li>
</ul> -->
<p class="govuk-body">You do not need any technical knowledge to use Notify.</p>
{% if not current_user.is_authenticated %}
@@ -53,7 +52,6 @@
<p class="govuk-body">Notify commits to sending 95% of text messages within 10 seconds.</p>
<!-- <ul class="list list-bullet">
<li>sending 95% of text messages within 10 seconds</li>
<li>printing and posting letters by 3pm the next working day (if you send them to us before 5:30pm)</li>
</ul> -->
<!-- <p class="govuk-body">We send messages through several different providers. If one provider fails, Notify switches to another so that your messages are not affected.</p> -->

View File

@@ -1,53 +0,0 @@
{% extends "content_template.html" %}
{% from "components/table.html" import mapping_table, row, text_field, edit_field, field with context %}
{% block per_page_title %}
Letters
{% endblock %}
{% block content_column_content %}
<h1 class="heading heading-large">Letters</h1>
<p class="govuk-body">US Notify will print, pack and post your letters for you.</p>
{% if not current_user.is_authenticated %}
<p class="govuk-body"><a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('main.register') }}">Create an account</a> and try Notify for yourself.</p>
{% endif %}
<h2 class="heading heading-medium">Features</h2>
<p class="govuk-body">Notify makes it easy to:</p>
<ul class="list list-bullet">
<li>create reusable letter templates</li>
<li>personalise the content of your letter</li>
<li>send bulk mail</li>
</ul>
<p class="govuk-body">You can also <a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('.documentation') }}">integrate with our API</a> to send letters automatically.</p>
<h3 class="heading-small" id="postage">Choose your postage</h3>
<p class="govuk-body">Notify can send UK letters by first or second class post.</p>
<p class="govuk-body">First class letters are delivered one day after theyre dispatched. Second class letters are delivered 2 days after theyre dispatched.</p>
<p class="govuk-body">Letters are printed at 5:30pm and dispatched the next working day (Monday to Friday). Royal Mail delivers from Monday to Saturday, excluding bank holidays.</p>
<h3 class="heading-small" id="branding">Branding</h3>
<p class="govuk-body">Add your organisations logo to your letter templates.</p>
<p class="govuk-body">See <a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('.branding_and_customisation', _anchor='letter-branding') }}">how to change your letter branding</a>.</p>
<h3 class="heading heading-small" id="upload-letters">Upload your own letters</h3>
<p class="govuk-body">You can create reusable letter templates in Notify, or upload and send your own letters with the Notify API.</p>
<p class="govuk-body">Read our <a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('.documentation') }}">documentation</a>.</p>
<h3 class="heading heading-small" id="international-letters">International letters</h3>
<p class="govuk-body">Notify checks for international addresses and will automatically charge you the correct postage.</p>
<p class="govuk-body">Letters to Europe are delivered 3 to 5 days after theyre dispatched. Letters sent anywhere else in the world take 5 to 7 days to arrive.</p>
<h2 class="heading heading-medium">Pricing</h2>
<p class="govuk-body">It costs between 41 pence and £1.28 (plus VAT) to send a letter. Prices include:</p>
<ul class="list list-bullet">
<li>paper</li>
<li>double-sided colour printing</li>
<li>C5 size envelopes with an address window</li>
<li>first or second class postage</li>
</ul>
<p class="govuk-body">Letters can be up to 10 pages long (5 double-sided sheets of paper).</p>
<p class="govuk-body"><a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('.pricing') }}">See pricing</a> for more details.</p>
{% endblock %}

View File

@@ -15,7 +15,6 @@
<li><a class="govuk-link govuk-link--no-visited-state" href="#email-branding">change your email branding</a></li>
<li><a class="govuk-link govuk-link--no-visited-state" href="#reply-to-address">add a reply-to email address</a></li>
<li><a class="govuk-link govuk-link--no-visited-state" href="#text-message-sender">change the text message sender</a></li>
<li><a class="govuk-link govuk-link--no-visited-state" href="#letter-branding">change your letter branding</a></li>
</ul>
<h2 class="heading-medium" id="email-branding">Change your email branding</h2>
@@ -53,15 +52,4 @@
<li>Select <b class="govuk-!-font-weight-bold">Change</b> or <b class="govuk-!-font-weight-bold">Add text message sender</b>.</li>
</ol>
<h2 class="heading-medium" id="letter-branding">Change your letter branding</h2>
<p class="govuk-body">Letter templates do not have default branding.</p>
<p class="govuk-body">To add a logo to your letters:</p>
<ol class="list list-number">
<li>Go to the <b class="govuk-!-font-weight-bold">Letter settings</b> section of the {{ service_link(current_service, 'main.service_settings', 'settings') }} page.</li>
<li>Select <b class="govuk-!-font-weight-bold">Change</b> on the <b class="govuk-!-font-weight-bold">Letter branding</b> row.</li>
</ol>
{% endblock %}

View File

@@ -17,6 +17,6 @@
<ol class="list list-number">
<li>Go to the {{ service_link(current_service, 'main.choose_template', 'templates') }} page and choose an existing template.</li>
<li>Select <b class="govuk-!-font-weight-bold">Send</b>.</li>
<li>If youre sending emails, select <b class="govuk-!-font-weight-bold">Upload a list of email addresses</b>. If youre sending text messages, select <b class="govuk-!-font-weight-bold">Upload a list of phone numbers</b>. If youre sending letters, select <b class="govuk-!-font-weight-bold">Upload a list of addresses</b>.</li>
<li>If youre sending emails, select <b class="govuk-!-font-weight-bold">Upload a list of email addresses</b>. If youre sending text messages, select <b class="govuk-!-font-weight-bold">Upload a list of phone numbers</b>.</li>
{% endblock %}

View File

@@ -34,8 +34,6 @@
<li>horizontal rules</li>
</ul>
<p class="govuk-body">Letter templates can include headings and bullets.</p>
<p class="govuk-body">Notify does not allow bold, italics, subheadings, underlined text or different fonts. This is because they can make it harder for users to read what youve written.</p>
<h2 class="heading-medium" id="links">Add links</h2>

View File

@@ -18,7 +18,6 @@
<li><a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('.edit_and_format_messages') }}">edit and format messages</a></li>
<li><a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('.branding_and_customisation') }}">add branding and customisation</a></li>
<li><a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('.send_files_by_email') }}">send files by email</a></li>
<!-- <li><a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('.upload_a_letter') }}">upload a letter</a></li> -->
</ul>
<h2 class="heading-medium">More information</h2>
@@ -27,7 +26,6 @@
<ul class="list list-bullet">
<li><a class="govuk-link govuk-link--no-visited-state" href="https://www.gov.uk/service-manual/design/sending-emails-and-text-messages">planning and writing text messages and emails</a></li>
<!-- <li><a class="govuk-link govuk-link--no-visited-state" href="https://www.gov.uk/service-manual/design/writing-effective-letters">writing effective letters</a></li> -->
<li><a class="govuk-link govuk-link--no-visited-state" href="https://www.gov.uk/service-manual/technology/how-to-email-your-users">sending emails from your service domain</a></li>
<li><a class="govuk-link govuk-link--no-visited-state" href="https://www.gov.uk/service-manual/technology/sending-text-messages-securely">sending text messages securely</a></li>
</ul>

View File

@@ -1,57 +0,0 @@
{% extends "content_template.html" %}
{% from "components/service-link.html" import service_link %}
{% block per_page_title %}
Letter specification
{% endblock %}
{% block content_column_content %}
<h1 class="heading-large">Letter specification</h1>
<p class="govuk-body">Page size and layout: A4 portrait (210 × 297 mm)</p>
<p class="govuk-body">Maximum file size: 2 MB</p>
<p class="govuk-body">Your letter must be 10 pages or less (5 double-sided sheets of paper).</p>
<p class="govuk-body">The content of your letter must appear inside the printable area.</p>
<p class="govuk-body">To help you set up your letter, you can download our <a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('.letter_spec') }}">letter specification as a PDF</a>.</p>
<details class="govuk-details" data-module="govuk-details">
<summary class="govuk-details__summary">
<span class="govuk-details__summary-text">
See a text version of the letter specification
</span>
</summary>
<div class="govuk-details__text">
<h2 class="heading-medium">Page 1 of 10</h2>
<p class="govuk-body">Left margin 15mm</p>
<p class="govuk-body">Right margin 15mm</p>
<p class="govuk-body">Top margin 5mm</p>
<p class="govuk-body">Bottom margin 5mm</p>
<h3 class="heading-small">Logo block</h3>
<p class="govuk-body">Position: 15mm from left edge, 5mm from top edge</p>
<p class="govuk-body">Size: 200mm wide by 25mm high</p>
<h3 class="heading-small">Address block</h3>
<p class="govuk-body">Position: 39.5mm from left edge, 24.6mm from top edge</p>
<p class="govuk-body">Size: 95.4mm wide by 26.8mm high</p>
<h3 class="heading-small">Letter contact block</h3>
<p class="govuk-body">Position: 125mm from left edge, 30mm from top edge</p>
<p class="govuk-body">Size: 65mm wide by 65mm high</p>
<h2 class="heading-medium">Pages 2 to 10</h2>
<p class="govuk-body">Left margin 15mm</p>
<p class="govuk-body">Right margin 15mm</p>
<p class="govuk-body">Top margin 5mm</p>
<p class="govuk-body">Bottom margin 5mm</p>
</div>
</details>
{% endblock %}

View File

@@ -1,25 +0,0 @@
{% extends "content_template.html" %}
{% from "components/service-link.html" import service_link %}
{% block per_page_title %}
Upload a letter
{% endblock %}
{% block content_column_content %}
<h1 class="heading-large">Upload a letter</h1>
<p class="govuk-body">Upload a one-off letter as a PDF and well print, pack and post it for you.</p>
<p class="govuk-body">You can use this feature if you send a lot of one-off letters or if our reusable letter templates do not meet your needs.</p>
<p class="govuk-body">To upload and send a letter from a PDF file:</p>
<ol class="list list-number">
<li>Go to the {{ service_link(current_service, 'main.uploads', 'uploads') }} page.</li>
<li>Select <b class="govuk-!-font-weight-bold">Upload a letter</b>.</li>
<li>Select <b class="govuk-!-font-weight-bold">Choose file</b>.</li>
</ol>
<p class="govuk-body">Your file must meet our <a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('main.letter_specification') }}">letter specification</a>.</p>
{% endblock %}

View File

@@ -15,23 +15,10 @@
<p class="govuk-body">
You have not uploaded any files recently.
</p>
{% if current_user.has_permissions('send_messages') and current_service.has_permission('letter')%}
<p class="govuk-body">
Upload a letter and Notify will print, pack and post it for you.
</p>
{% endif %}
{% endif %}
{{ previous_next_navigation(prev_page, next_page) }}
{% if current_user.has_permissions('send_messages') %}
<div class="js-stick-at-bottom-when-scrolling">
{% if current_service.has_permission('letter') %}
{{ govukButton({
"element": "a",
"text": "Upload a letter",
"href": url_for('.upload_letter', service_id=current_service.id),
"classes": "govuk-button--secondary govuk-!-margin-right-3"
}) }}
{% endif %}
{{ govukButton({
"element": "a",
"text": "Upload an emergency contact list",

View File

@@ -1,44 +0,0 @@
{% extends "views/platform-admin/_base_template.html" %}
{% from "components/file-upload.html" import file_upload %}
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
{% from "components/back-link/macro.njk" import govukBackLink %}
{% block per_page_title %}
{{ '{} letter branding'.format('Update' if is_update else 'Add')}}
{% endblock %}
{% block backLink %}
{{ govukBackLink({ "href": url_for('main.letter_branding') }) }}
{% endblock %}
{% block platform_admin_content %}
{{ page_header('{} letter branding'.format('Update' if is_update else 'Add')) }}
<div class="govuk-grid-row">
<div class="govuk-grid-column-three-quarters">
{% if logo %}
<div id="logo-img">
<img src="https://{{ cdn_url }}/{{ logo }}"/>
</div>
{% endif %}
<p class="govuk-body">
Logos should be SVG files, cropped to artwork bounds and with all fonts outlined.
</p>
{{ file_upload(file_upload_form.file, allowed_file_extensions=['svg'], button_text='{} logo'.format('Update' if is_update else 'Upload')) }}
{% call form_wrapper() %}
<div class="form-group">
{{ letter_branding_details_form.name(param_extensions={
"formGroup": {"classes": "govuk-!-margin-top-3"}
}) }}
{{ page_footer(
'Save',
button_name='operation',
button_value='branding-details'
) }}
</div>
{% endcall %}
</div>
{% endblock %}

View File

@@ -1,36 +0,0 @@
{% extends "views/platform-admin/_base_template.html" %}
{% from "components/page-header.html" import page_header %}
{% from "components/live-search.html" import live_search %}
{% from "components/button/macro.njk" import govukButton %}
{% set page_title = "Letter branding" %}
{% block per_page_title %}
{{ page_title }}
{% endblock %}
{% block platform_admin_content %}
<h1 class="heading-medium">{{ page_title }}</h1>
{{ live_search(target_selector='.letter-brand', show=True, form=search_form, autofocus=True) }}
<nav>
{% for brand in letter_brandings %}
<div class="letter-brand">
<div class="message-name">
<a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('.update_letter_branding', branding_id=brand.id) }}">
{{ brand.name }}
</a>
</div>
</div>
{% endfor %}
</nav>
<div class="js-stick-at-bottom-when-scrolling">
{{ govukButton({
"element": "a",
"text": "New brand",
"href": url_for('.create_letter_branding'),
"classes": "govuk-button--secondary"
}) }}
</div>
{% endblock %}

View File

@@ -67,33 +67,4 @@
{% endcall %}
</div>
<!-- <h2 id="letter-statuses" class="heading-medium">Letters</h2>
<div class="bottom-gutter-3-2">
{% call mapping_table(
caption='Message statuses letters',
field_headings=['Status', 'Description'],
field_headings_visible=True,
caption_visible=False
) %}
{% for message_status, description in [
('Sent', 'Notify has sent the letter to the provider to be printed.'),
('Printed', 'The provider has printed the letter. Letters are printed at 5:30pm and dispatched the next working day.'),
('Cancelled', 'Sending cancelled. Your letter will not be printed or dispatched.'),
('Technical failure', 'Notify had an unexpected error while sending the letter to our printing provider.'),
('Permanent failure', 'The provider cannot print the letter. Your letter will not be dispatched.')
] %}
{% call row() %}
{{ text_field(message_status) }}
{{ text_field(description) }}
{% endcall %}
{% endfor %}
{% endcall %}
</div>
<h3 id="returned-mail" class="heading-small">Undelivered letters and returned mail</h3>
<p class="govuk-body">Every letter we send includes our printers address on the back of the envelope. Its not possible to customise the return address.</p>
<p class="govuk-body">Returned mail is destroyed by our printer.</p>
<p class="govuk-body">Each letter has a unique ID. Our printer sends us the ID of every letter they destroy. Well contact you if the IDs match any of your letters. This is a partly manual process, so it can take a few weeks.</p> -->
{% endblock %}

View File

@@ -5,11 +5,7 @@
{% from "components/form.html" import form_wrapper %}
{% from "components/button/macro.njk" import govukButton %}
{% set title_status = (
'Failed '
if status == 'failed' and message_type == 'letter'
else ''
) %}
{% set title_status = '' %}
{% set page_title = (
(title_status + 99|message_count_label(message_type, suffix='')) | capitalize
if current_user.has_permissions('view_activity')
@@ -23,15 +19,12 @@
{% block maincolumn_content %}
{{ page_header(page_title) }}
{% if not message_type == "letter" %}
{{ ajax_block(
partials,
url_for('.get_notifications_as_json', service_id=current_service.id, message_type=message_type, status=status),
'counts'
) }}
{% endif %}
{{ ajax_block(
partials,
url_for('.get_notifications_as_json', service_id=current_service.id, message_type=message_type, status=status),
'counts'
) }}
{% call form_wrapper(
action=url_for('.view_notifications', service_id=current_service.id, message_type=message_type),

View File

@@ -13,18 +13,7 @@
{% endblock %}
{% block maincolumn_content %}
{% if template.template_type == 'letter' and current_service.trial_mode %}
{% set error = 'trial-mode-letters' %}
<div class="bottom-gutter">
{% call banner_wrapper(type='dangerous') %}
{% with
count_of_recipients=1
%}
{% include "partials/check/trying-to-send-letters-in-trial-mode.html" %}
{% endwith %}
{% endcall %}
</div>
{% elif error == 'not-allowed-to-send-to' %}
{% if error == 'not-allowed-to-send-to' %}
<div class="bottom-gutter">
{% call banner_wrapper(type='dangerous') %}
{% with
@@ -50,13 +39,6 @@
{% include "partials/check/message-too-long.html" %}
{% endcall %}
</div>
{% elif letter_too_long %}
{% set error = 'letter-too-long' %}
<div class="bottom-gutter">
{% call banner_wrapper(type='dangerous') %}
{% include "partials/check/letter-too-long.html" %}
{% endcall %}
</div>
{% else %}
{{ page_header('Preview of {}'.format(template.name)) }}
{% endif %}
@@ -75,9 +57,6 @@
{% set button_text %}Send 1 {{ 1|message_count_label(template.template_type, suffix='') }}{% endset %}
{{ govukButton({ "text": button_text }) }}
{% endif %}
{% if template.template_type == 'letter' %}
<a href="{{ url_for('no_cookie.check_notification_preview', service_id=current_service.id, template_id=template.id, filetype='pdf') }}" download class="govuk-link govuk-link--no-visited-state page-footer-right-aligned-link{% if error %}-without-button{% endif %}">Download as a PDF</a>
{% endif %}
</form>
</div>

View File

@@ -1,17 +0,0 @@
{% extends "withnav_template.html" %}
{% block service_page_title %}
Letter
{% endblock %}
{% block maincolumn_content %}
<h1 class="heading-large">Letter</h1>
<p class="govuk-body">
Provided as PDF on {{ created_at|format_datetime_short }}
</p>
<p class="notification-status-cancelled">
Validation failed Theres a problem with your letter. <br>Notify cannot read this PDF.
</p>
{% endblock %}

View File

@@ -21,23 +21,15 @@
1|message_count_label(template.template_type, suffix='') | capitalize
) }}
<p class="govuk-body">
{% if is_precompiled_letter %}
{% if created_by %}
Uploaded
{% else %}
Provided as PDF
{% endif %}
{% if help %}
{{ template.name }}
{% else %}
{% if help %}
{{ template.name }}
{% else %}
<a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('.view_template', service_id=current_service.id, template_id=template.id) }}">{{ template.name }}</a>
{% endif %}
was sent
<a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('.view_template', service_id=current_service.id, template_id=template.id) }}">{{ template.name }}</a>
{% endif %}
was sent
{% if job and job.original_file_name != 'Report' %}
{% set destination =
{'letter': 'an address', 'email': 'an email address', 'sms': 'a phone number'} %}
{'email': 'an email address', 'sms': 'a phone number'} %}
to {{ destination[template.template_type] }} from
<a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('.view_job', service_id=current_service.id, job_id=job.id) }}">{{ job.original_file_name }}</a>
{% elif created_by %}
@@ -46,7 +38,7 @@
{{ created_at|format_datetime_human }}
</p>
<div class="{{ 'letter-sent' if template.template_type == 'letter' else '' }}">
<div class="">
{{ template|string }}
</div>
@@ -64,4 +56,4 @@
</p>
{% endif %}
{% endblock %}
{% endblock %}q

View File

@@ -38,17 +38,6 @@
) }}
</div>
</div>
<div class="govuk-grid-column-one-third">
<h2 class="heading-small">Letters</h2>
<div class="keyline-block">
{{ big_number(
total_letter_cost,
'spent',
currency="$",
smaller=True
) }}
</div>
</div>
</div>
{% if search_form %}
@@ -93,14 +82,6 @@
) }}
{% endif %}
</div>
<div class="govuk-grid-column-one-third">
{{ big_number(
service.letter_cost,
'spent on letters',
currency="$",
smallest=True
) }}
</div>
</div>
</div>
{% endfor %}

View File

@@ -109,19 +109,6 @@
)
}}
{% endcall %}
<!-- {% call row() %}
{{ text_field('Default letter branding') }}
{{ optional_text_field(
current_org.letter_branding.name,
default='No branding'
) }}
{{ edit_field(
'Change',
url_for('.edit_organisation_letter_branding', org_id=current_org.id),
suffix='default letter branding for the organisation'
)
}}
{% endcall %} -->
{% call row() %}
{{ text_field('Known email domains') }}
{{ optional_text_field(current_org.domains or None, default='None') }}

View File

@@ -1,24 +0,0 @@
{% extends "org_template.html" %}
{% from "components/form.html" import form_wrapper %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/branding-preview.html" import letter_branding_preview %}
{% block per_page_title %}
Preview letter branding
{% endblock %}
{% block maincolumn_content %}
<h1 class="heading-large">Preview letter branding</h1>
<div class="govuk-grid-row">
<div class="govuk-grid-column-full">
{{ letter_branding_preview(form.branding_style.data) }}
{% call form_wrapper(action=action) %}
<div class="form-group">
{{ form.hidden_tag() }}
{{ page_footer('Save') }}
</div>
{% endcall %}
</div>
</div>
{% endblock %}

View File

@@ -1,43 +0,0 @@
{% extends "org_template.html" %}
{% from "components/live-search.html" import live_search %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/page-header.html" import page_header %}
{% from "components/form.html" import form_wrapper %}
{% from "components/back-link/macro.njk" import govukBackLink %}
{% set page_title = "Default letter branding" %}
{% block per_page_title %}
{{ page_title }}
{% endblock %}
{% block backLink %}
{{ govukBackLink({ "href": url_for('.organisation_settings', org_id=current_org.id) }) }}
{% endblock %}
{% block maincolumn_content %}
{{ page_header(page_title) }}
{% call form_wrapper(data_kwargs={'preview-type': 'letter'}) %}
<div class="govuk-grid-row">
<div class="govuk-grid-column-full preview-pane">
</div>
</div>
<div class="govuk-grid-row">
<div class="govuk-grid-column-full">
{{ live_search(
target_selector='.govuk-radios__item',
show=True,
form=search_form,
label='Search by name',
autofocus=True
) }}
{{ form.branding_style }}
</div>
</div>
<div class="js-stick-at-bottom-when-scrolling">
{{ page_footer('Preview') }}
</div>
{% endcall %}
{% endblock %}

View File

@@ -26,27 +26,20 @@
</div>
<div class="govuk-grid-column-one-half">
<div class="govuk-grid-row govuk-!-padding-top-4">
<div class="govuk-grid-column-one-third">
<div class="govuk-grid-column-one-half">
{{ big_number(
email_notifications|format_billions,
label=email_notifications|message_count_noun('email'),
smallest=True,
) }}
</div>
<div class="govuk-grid-column-one-third">
<div class="govuk-grid-column-one-half">
{{ big_number(
sms_notifications|format_billions,
label=sms_notifications|message_count_noun('sms'),
smallest=True,
) }}
</div>
<div class="govuk-grid-column-one-third">
{{ big_number(
letter_notifications|format_billions,
label=letter_notifications|message_count_noun('letter'),
smallest=True,
) }}
</div>
</div>
</div>
</div>
@@ -60,7 +53,6 @@
'Date',
99|message_count_noun('email')|capitalize,
99|message_count_noun('sms')|capitalize,
99|message_count_noun('letter')|capitalize,
],
empty_message='No data to show'
) %}
@@ -73,9 +65,6 @@
{% call field() %}
{{ item.sms|format_thousands }}
{% endcall %}
{% call field() %}
{{ item.letters|format_thousands }}
{% endcall %}
{% endcall %}
<p class="table-show-more-link">
Only showing the last {{ notifications_by_type|length }} days

View File

@@ -20,12 +20,10 @@
('Providers', url_for('main.view_providers')),
('Reports', url_for('main.platform_admin_reports')),
('Email branding', url_for('main.email_branding')),
('Letter branding', url_for('main.letter_branding')),
('Inbound SMS numbers', url_for('main.inbound_sms_admin')),
('Find services by name', url_for('main.find_services_by_name')),
('Find users by email', url_for('main.find_users_by_email')),
('Email complaints', url_for('main.platform_admin_list_complaints')),
('Returned letters', url_for('main.platform_admin_returned_letters')),
('Clear cache', url_for('main.clear_cache')),
] %}
<li>

View File

@@ -21,14 +21,4 @@
smaller=True
) }}
</div>
<div class="govuk-grid-column-one-third">
{{ big_number_with_status(
global_stats.letter.requested,
global_stats.letter.requested|message_count_label('letter'),
global_stats.letter.failed,
global_stats.letter.failure_rate,
global_stats.letter.failure_rate|float > 3,
smaller=True
) }}
</div>
</div>

View File

@@ -34,8 +34,6 @@
('sms fragments', 'The number of text message fragments sent times the rate multiplier'),
('sms chargeable units', 'The number of text message fragments sent'),
('email totals', 'The number of emails sent'),
('letter totals', 'The number of letters sent'),
('letter sheet totals', 'The number of sheets sent')
] %}
{% call row() %}
{{ text_field(column_heading) }}

View File

@@ -31,8 +31,6 @@
{% for column_heading, description in [
('sms cost', 'The total cost of text messages sent after a service has used its free allowance.'),
('sms chargeable units', 'The number of fragments sent after a service has used its free allowance. This number takes into account the cost multiplier for <a class="govuk-link govuk-link--no-visited-state" href="https://www.notifications.service.gov.uk/pricing#international-numbers">sending international text messages</a>.' | safe),
('letter cost', 'The total cost of letters sent by a service.'),
('letter breakdown', 'The number of letters sent by a service, grouped by postage and unit cost.'),
('purchase order number, contact names, contact email addresses and billing reference', 'We add this data manually based on the information we get from services. You can help by adding it to the service settings page.'),
] %}
{% call row() %}

View File

@@ -1,18 +0,0 @@
{% extends "views/platform-admin/_base_template.html" %}
{% from "components/textbox.html" import textbox %}
{% from "components/page-footer.html" import sticky_page_footer %}
{% from "components/form.html" import form_wrapper %}
{% block per_page_title %}
{{ page_title|capitalize }}
{% endblock %}
{% block platform_admin_content %}
<h1 class="heading-medium">Submit returned letters</h1>
{% call form_wrapper() %}
{{ textbox(form.references, width='1-1', rows=8, autosize=True) }}
{{ sticky_page_footer("Submit") }}
{% endcall %}
{% endblock %}

View File

@@ -13,7 +13,6 @@
field_headings=[
right_aligned_field_heading('Emails'),
right_aligned_field_heading('Text messages'),
right_aligned_field_heading('Letters')
],
field_headings_visible=False,
) %}
@@ -33,7 +32,7 @@
{% endcall %}
{% call row() %}
{% for channel in ('email', 'sms', 'letter') %}
{% for channel in ('email', 'sms') %}
{% call field(border=False) %}
{{ big_number(
service['stats'][channel]['requested'],

View File

@@ -33,9 +33,6 @@
('sms notifications', 'The number of text messages sent by the service.'),
('sms chargeable units', 'The number of text message fragments times the rate multiplier sent by the service.'),
('email totals', 'The number of emails sent by a service'),
('letter totals', 'The number of letters sent by a service'),
('letter costs', 'The cost of the letters, rate * letter totals'),
('letter sheet totals', 'The number of sheet sent by a service')
] %}
{% call row() %}
{{ text_field(column_heading) }}

View File

@@ -10,7 +10,7 @@
{{ page_header('How to pay') }}
<!-- <p class="govuk-body">
If you use US Notify to send text messages or letters, you may need to send us a <a class="govuk-link govuk-link--no-visited-state" href="#purchase-orders">purchase order</a>.
If you use US Notify to send text messages, you may need to send us a <a class="govuk-link govuk-link--no-visited-state" href="#purchase-orders">purchase order</a>.
</p>
<h2 class="heading-medium" id="invoices">
@@ -27,7 +27,6 @@
<ul class="list list-bullet">
<li>exceed the <a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('.pricing') }}">free text message allowance</a></li>
<li>send letters</li>
</ul>
<p class="govuk-body">

View File

@@ -22,7 +22,6 @@
<p class="govuk-body">US Notify is free to use unless you:</p>
<ul class="list list-bullet">
<li>exceed your <a class="govuk-link govuk-link--no-visited-state" href="#text-messages">free text message allowance</a></li>
<!-- <li>send <a class="govuk-link govuk-link--no-visited-state" href="#letters">letters</a></li> -->
</ul>
<p class="govuk-body">Youll only pay for the additional text messages that you send. Theres no monthly charge, no setup fee and no procurement cost.</p>
@@ -229,39 +228,4 @@
"html": smsIntRates
}) }}
<!-- <h2 class="heading-medium" id="letters">Letters</h2>
<p class="govuk-body">The cost of sending a letter depends on the postage you choose and how many sheets of paper you need.</p>
<p class="govuk-body">Prices include:</p>
<ul class="list list-bullet">
<li>paper</li>
<li>postage</li>
<li>double-sided colour printing</li>
<li>C5 size envelopes with an address window</li>
</ul> -->
<!-- <div>
{% call mapping_table(
caption='Letter pricing',
field_headings=['Paper', 'Second class', 'First class', 'International'],
field_headings_visible=True,
caption_visible=False
) %}
{% for sheets, second, first, international in [
('1 sheet', '41p', '63p', '96p'),
('2 sheets', '46p', '68p', '£1.04'),
('3 sheets', '51p', '73p', '£1.12'),
('4 sheets', '56p', '78p', '£1.20'),
('5 sheets', '61p', '83p', '£1.28'),
] %}
{% call row() %}
{% call row_heading() %} {{ sheets }} {% endcall %}
{{ text_field(second + ' + VAT') }}
{{ text_field(first + ' + VAT') }}
{{ text_field(international + ' + VAT') }}
{% endcall %}
{% endfor %}
{% endcall %}
</div> -->
{% endblock %}

View File

@@ -1,46 +0,0 @@
{% extends "withnav_template.html" %}
{% from "components/table.html" import list_table, row_heading %}
{% from "components/page-header.html" import page_header %}
{% from "components/back-link/macro.njk" import govukBackLink %}
{% block service_page_title %}
Returned letters
{% endblock %}
{% block backLink %}
{{ govukBackLink({ "href": url_for('main.service_dashboard', service_id=current_service.id) }) }}
{% endblock %}
{% block maincolumn_content %}
<div class="govuk-grid-row">
<div class="govuk-grid-column-five-sixths">
{{ page_header('Returned letters') }}
<p class="govuk-body">
Reports are published once a month.
</p>
<p class="govuk-body">
Youll only get a report if one or more of your letters is returned.
</p>
</div>
</div>
<div class="dashboard-table">
{% call(item, row_number) list_table(
data,
caption="Returned letters report",
caption_visible=False,
empty_message='If you have returned letter reports they will be listed here',
field_headings=['Report'],
field_headings_visible=False
) %}
{% call row_heading() %}
<a class="govuk-link govuk-link--no-visited-state file-list-filename"
href="{{url_for('.returned_letters', service_id=current_service.id, reported_at=item.reported_at)}}">{{ item.reported_at | format_date_normal }}</a>
<p class="file-list-hint">
{{ item.returned_letter_count|format_thousands }} {{ item.returned_letter_count|message_count_label('letter', suffix='')}}
</p>
{% endcall %}
{% endcall %}
</div>
{% endblock %}

View File

@@ -1,59 +0,0 @@
{% extends "withnav_template.html" %}
{% from "components/table.html" import list_table, field %}
{% from "components/page-header.html" import page_header %}
{% from "components/back-link/macro.njk" import govukBackLink %}
{% block service_page_title %}
Returned letters for {{ reported_at|format_date_normal }}
{% endblock %}
{% block backLink %}
{{ govukBackLink({ "href": url_for('main.returned_letter_summary', service_id=current_service.id) }) }}
{% endblock %}
{% block maincolumn_content %}
{{ page_header('Returned letters for {}'.format(reported_at|format_date_normal)) }}
<p class="bottom-gutter">
<a download href="{{ url_for('.returned_letters_report', service_id=current_service.id, reported_at=reported_at) }}" class="govuk-link heading-small">Download this report (<abbr title="Comma separated values">CSV</abbr>)</a>
</p>
<div class="dashboard-table">
{% call(item, row_number) list_table(
returned_letters,
caption="Returned letters for {}".format(today),
caption_visible=False,
empty_message='If you have returned letter reports they will be listed here',
field_headings=['Template name', 'Originally sent'],
field_headings_visible=False
) %}
{% call field() %}
<span class="file-list-filename file-list-filename-unlinked">{{ item.template_name or item.uploaded_letter_file_name or 'Provided as PDF' }}</span>
<span class="file-list-hint">
{% if item.client_reference %}
Reference {{ item.client_reference }}
{% elif item.original_file_name %}
Sent from {{ item.original_file_name }}
{% else %}
No reference provided
{% endif %}
</span>
{% endcall %}
{% call field(align='right') %}
<span class="align-with-message-body">
<span class="status-hint">
Sent {{ item.created_at|format_date_normal }}
</span>
</span>
{% endcall %}
{% endcall %}
{% if more_than_one_page %}
<p class="table-show-more-link">
Only showing the first {{ page_size }} of {{ count_of_returned_letters|format_thousands }} rows
</p>
{% endif %}
</div>
{% endblock %}

View File

@@ -1,46 +0,0 @@
{% extends "withnav_template.html" %}
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/textbox.html" import textbox %}
{% from "components/form.html" import form_wrapper %}
{% from "components/back-link/macro.njk" import govukBackLink %}
{% block service_page_title %}
{{ page_title }}
{% endblock %}
{% block backLink %}
{{ govukBackLink({ "href": back_link }) }}
{% endblock %}
{% block maincolumn_content %}
{{ page_header(page_title) }}
{% call form_wrapper(
class='send-one-off-form',
module="autofocus",
data_kwargs={'force-focus': True}
) %}
<div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds {% if form.placeholder_value.label.text == 'phone number' %}extra-tracking{% endif %}">
{{ textbox(
form.address,
rows=4,
width='1-1',
autofocus=True,
autosize=True,
) }}
</div>
</div>
<p class="govuk-body">
<a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('.send_messages', service_id=current_service.id, template_id=template.id) }}">
Upload a list of {{ 999|recipient_count_label(template.template_type) }}
</a>
</p>
{{ page_footer('Continue') }}
{% endcall %}
{{ template|string }}
{% endblock %}

View File

@@ -197,76 +197,6 @@
{% endcall %}
{% endcall %}
<!-- {% call mapping_table(
caption='Letter settings',
field_headings=['Label', 'Value', 'Action'],
field_headings_visible=False,
caption_visible=True
) %}
{% call row() %}
{{ text_field('Send letters') }}
{{ boolean_field('letter' in current_service.permissions) }}
{{ edit_field(
'Change',
url_for(
'.service_set_channel',
channel='letter',
service_id=current_service.id
),
permissions=['manage_service'],
suffix='your settings for sending letters',
)}}
{% endcall %}
{% call settings_row(if_has_permission='letter') %}
{{ text_field('Send international letters') }}
{{ boolean_field(current_service.has_permission('international_letters')) }}
{{ edit_field(
'Change',
url_for('.service_set_international_letters', service_id=current_service.id),
permissions=['manage_service']
)}}
{% endcall %}
{% call settings_row(if_has_permission='letter') %}
{{ text_field('Sender addresses') }}
{% call field(status='' if current_service.count_letter_contact_details else 'default') %}
{% if current_service.default_letter_contact_block %}
{{ current_service.default_letter_contact_block_html }}
{% elif current_service.count_letter_contact_details %}
Blank
{% else %}
Not set
{% endif %}
{% if current_service.count_letter_contact_details > 1 %}
<div class="hint">
{{ '…and %d more' | format(current_service.count_letter_contact_details - 1) }}
</div>
{% endif %}
{% endcall %}
{{ edit_field(
'Manage',
url_for('.service_letter_contact_details', service_id=current_service.id),
permissions=['manage_service','manage_api_keys'],
suffix='sender addresses',
)
}}
{% endcall %}
{% call settings_row(if_has_permission='letter') %}
{{ text_field('Letter branding') }}
{{ optional_text_field(current_service.letter_branding.name) }}
{{ edit_field(
'Change',
url_for('.letter_branding_request', service_id=current_service.id),
permissions=['manage_service'],
suffix='letter branding',
)}}
{% endcall %}
{% endcall %} -->
</div>
@@ -278,7 +208,6 @@
<ul class='list list-bullet'>
<li>send {{ current_service.message_limit }} text messages and emails per day</li>
<li>send messages to yourself and other people in your team</li>
<!-- <li>create letter templates, but not send them</li> -->
</ul>
<p class="govuk-body">
@@ -385,11 +314,6 @@
{{ text_field(current_service.email_branding_name) }}
{{ edit_field('Change', url_for('.service_set_email_branding', service_id=current_service.id), suffix='email branding (admin view)') }}
{% endcall %}
{% call row() %}
{{ text_field('Letter branding')}}
{{ optional_text_field(current_service.letter_branding.name) }}
{{ edit_field('Change', url_for('.service_set_letter_branding', service_id=current_service.id), suffix='letter branding (admin view)') }}
{% endcall %}
{% call row() %}
{{ text_field('Custom data retention')}}
{% call field() %}

View File

@@ -1,57 +0,0 @@
{% extends "withnav_template.html" %}
{% from "components/radios.html" import radio, conditional_radio_panel %}
{% from "components/select-input.html" import select_wrapper %}
{% from "components/textbox.html" import textbox %}
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
{% from "components/back-link/macro.njk" import govukBackLink %}
{% block service_page_title %}
Change letter branding
{% endblock %}
{% block backLink %}
{{ govukBackLink({
"href": url_for('.view_template', service_id=current_service.id, template_id=from_template) if from_template else url_for('.service_settings', service_id=current_service.id)
}) }}
{% endblock %}
{% block maincolumn_content %}
{{ page_header('Change letter branding') }}
<p class="govuk-body">
Your letters currently have {{ branding_name }} branding.
</p>
{% call form_wrapper() %}
{% if form.something_else_is_only_option %}
{{ textbox(
form.something_else,
hint='Include links to your brand guidelines or examples of how to use your branding.',
width='1-1',
) }}
{% else %}
{% call select_wrapper(form.options) %}
{% for option in form.options %}
{{ radio(option, data_target='panel-something-else' if option.data == form.FALLBACK_OPTION_VALUE else '') }}
{% endfor %}
{% endcall %}
{% call conditional_radio_panel('panel-something-else') %}
{{ textbox(
form.something_else,
hint='Include links to your brand guidelines or examples of how to use your branding.',
width='1-1',
autosize=True,
) }}
{% endcall %}
{% endif %}
<p class="form-group">
Well email you once your brandings ready to use, or if we need any
more information.
</p>
{{ page_footer('Request new branding') }}
{% endcall %}
{% endblock %}

View File

@@ -35,10 +35,6 @@
"classes": "govuk-!-width-one-half",
"hint": {"text": "For example, 50,000"},
}) }}
{{ form.volume_letter(param_extensions={
"classes": "govuk-!-width-one-half",
"hint": {"text": "For example, 50,000"},
}) }}
</div>
{{ form.consent_to_research }}
{{ page_footer('Continue') }}

View File

@@ -1,80 +0,0 @@
{% extends "withnav_template.html" %}
{% from "components/copy-to-clipboard.html" import copy_to_clipboard %}
{% from "components/page-header.html" import page_header %}
{% from "components/table.html" import row_group, row, text_field, edit_field, field, boolean_field, list_table with context %}
{% from "components/button/macro.njk" import govukButton %}
{% from "components/back-link/macro.njk" import govukBackLink %}
{% block service_page_title %}
Sender addresses
{% endblock %}
{% block backLink %}
{{ govukBackLink({ "href": url_for('main.service_settings', service_id=current_service.id) }) }}
{% endblock %}
{% block maincolumn_content %}
<div class="bottom-gutter">
{{ page_header('Sender addresses') }}
</div>
<div class="user-list">
<div class="user-list-item">
<div class="govuk-grid-row">
<div class="govuk-grid-column-three-quarters">
<p class="user-list-item-blank govuk-body hint">
Blank
{% if not current_service.default_letter_contact_block %}
(default)
{% endif %}
</p>
</div>
<div class="govuk-grid-column-one-quarter">
{% if current_service.default_letter_contact_block and current_user.has_permissions('manage_service') %}
<a class="govuk-link govuk-link--no-visited-state user-list-edit-link" href="{{ url_for('.service_make_blank_default_letter_contact', service_id =current_service.id) }}">Make default</a>
{% endif %}
</div>
</div>
</div>
{% for item in letter_contact_details %}
<div class="user-list-item">
<div class="govuk-grid-row">
<div class="govuk-grid-column-three-quarters">
<p class="govuk-body">
{{ item.contact_block | nl2br }}
</p>
<p class="govuk-body hint">
{%- if item.is_default -%}
(default)
{% endif %}
</p>
</div>
<div class="govuk-grid-column-one-quarter">
{% if current_user.has_permissions('manage_service') %}
<a class="govuk-link govuk-link--no-visited-state user-list-edit-link" href="{{ url_for('.service_edit_letter_contact', service_id =current_service.id, letter_contact_id = item.id) }}">
Change<span class="govuk-visually-hidden"> {{ item.contact_block }}</span>
</a>
{% endif %}
</div>
</div>
{% if letter_contact_details|length > 1 %}
{% set first_line_of_contact_block = item.contact_block|get_lines_with_normalised_whitespace|first %}
{{ copy_to_clipboard(item.id, name=first_line_of_contact_block, thing="ID") }}
{% endif %}
</div>
{% endfor %}
</div>
{% if current_user.has_permissions('manage_service') %}
<div class="govuk-grid-row">
<div class="govuk-grid-column-full">
<div class="js-stick-at-bottom-when-scrolling">
{{ govukButton({
"element": "a",
"text": "Add a new address",
"href": url_for('.service_add_letter_contact', service_id=current_service.id)
}) }}
</div>
</div>
</div>
{% endif %}
{% endblock %}

View File

@@ -1,38 +0,0 @@
{% extends "withnav_template.html" %}
{% from "components/textbox.html" import textbox %}
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
{% from "components/back-link/macro.njk" import govukBackLink %}
{% block service_page_title %}
Add a new address
{% endblock %}
{% block backLink %}
{{ govukBackLink({ "href": back_link }) }}
{% endblock %}
{% block maincolumn_content %}
{{ page_header('Add a new address') }}
<div class="govuk-grid-row">
<div class="govuk-grid-column-full">
{% call form_wrapper() %}
{{ textbox(
form.letter_contact_block,
label='This will appear as the sender address on your letters.'|safe,
hint='10 lines maximum',
width='1-2',
rows=10,
highlight_placeholders=True
) }}
{% if not first_contact_block %}
{{ form.is_default }}
{% endif %}
{{ page_footer('Add') }}
{% endcall %}
</div>
</div>
{% endblock %}

View File

@@ -1,48 +0,0 @@
{% extends "withnav_template.html" %}
{% from "components/textbox.html" import textbox %}
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
{% from "components/back-link/macro.njk" import govukBackLink %}
{% block service_page_title %}
Change sender address
{% endblock %}
{% block backLink %}
{% if not request.args.get('from_template') %}
{{ govukBackLink({ "href": url_for('.service_letter_contact_details', service_id=current_service.id) }) }}
{% endif %}
{% endblock %}
{% block maincolumn_content %}
{{ page_header('Change sender address') }}
{% call form_wrapper() %}
{{ textbox(
form.letter_contact_block,
label='This will appear as the sender address on your letters.'|safe,
hint='10 lines maximum',
width='1-2',
rows=10,
highlight_placeholders=True
) }}
{% if form.is_default.data %}
<p class="form-group">
This is currently your default address for {{ current_service.name }}.
</p>
{% else %}
{{ form.is_default }}
{% endif %}
{{ page_footer(
'Save',
delete_link=url_for('.service_confirm_delete_letter_contact', service_id=current_service.id, letter_contact_id=letter_contact_id),
delete_link_text='Delete'
) }}
{% endcall %}
{% endblock %}

View File

@@ -1,27 +0,0 @@
{% extends "views/platform-admin/_base_template.html" %}
{% from "components/form.html" import form_wrapper %}
{% from "components/button/macro.njk" import govukButton %}
{% from "components/branding-preview.html" import letter_branding_preview %}
{% block per_page_title %}
Preview letter branding
{% endblock %}
{% block platform_admin_content %}
<h1 class="heading-large">Preview letter branding</h1>
<div class="govuk-grid-row">
<div class="govuk-grid-column-full">
{{ letter_branding_preview(form.branding_style.data) }}
{% call form_wrapper(action=action) %}
<div class="form-group">
{{ form.hidden_tag() }}
<div class="page-footer">
{{ govukButton({ "text": "Save", "classes": "govuk-!-margin-right-2" }) }}
<a class="govuk-link govuk-link--no-visited-state page-footer-back-link" href="{{ url_for('main.service_settings', service_id=service_id) }}">Back to service settings</a>
</div>
</div>
{% endcall %}
</div>
</div>
{% endblock %}

View File

@@ -1,34 +0,0 @@
{% extends "withnav_template.html" %}
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
{% from "components/back-link/macro.njk" import govukBackLink %}
{% block service_page_title %}
Send international letters
{% endblock %}
{% block backLink %}
{{ govukBackLink({ "href": url_for('main.service_settings', service_id=current_service.id) }) }}
{% endblock %}
{% block maincolumn_content %}
<div class="govuk-grid-row">
<div class="govuk-grid-column-five-sixths">
{{ page_header('Send international letters') }}
<p class="govuk-body">
It costs more to send a letter to an international address.
</p>
<p class="govuk-body">
See <a class="govuk-link govuk-link--no-visited-state" href="{{ url_for(".pricing") }}">pricing</a> for the list
of rates.
</p>
{% call form_wrapper() %}
{{ form.enabled }}
{{ page_footer('Save') }}
{% endcall %}
</div>
</div>
{% endblock %}

View File

@@ -1,43 +0,0 @@
{% extends "withnav_template.html" %}
{% from "components/live-search.html" import live_search %}
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
{% from "components/back-link/macro.njk" import govukBackLink %}
{% set page_title = "Set letter branding" %}
{% block service_page_title %}
{{ page_title }}
{% endblock %}
{% block backLink %}
{{ govukBackLink({ "href": url_for('.service_settings', service_id=current_service.id) }) }}
{% endblock %}
{% block maincolumn_content %}
{{ page_header(page_title) }}
{% call form_wrapper(data_kwargs={'preview-type': 'letter'}) %}
<div class="govuk-grid-row">
<div class="govuk-grid-column-full preview-pane">
</div>
</div>
<div class="govuk-grid-row">
<div class="govuk-grid-column-full">
{{ live_search(
target_selector='.govuk-radios__item',
show=True,
form=search_form,
label='Search by name',
autofocus=True
) }}
{{ form.branding_style }}
</div>
</div>
<div class="js-stick-at-bottom-when-scrolling">
{{ page_footer('Preview') }}
</div>
{% endcall %}
{% endblock %}

View File

@@ -1,34 +0,0 @@
{% extends "withnav_template.html" %}
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
{% from "components/back-link/macro.njk" import govukBackLink %}
{% block service_page_title %}
Send letters
{% endblock %}
{% block backLink %}
{{ govukBackLink({ "href": url_for('main.service_settings', service_id=current_service.id) }) }}
{% endblock %}
{% block maincolumn_content %}
<div class="govuk-grid-row">
<div class="govuk-grid-column-five-sixths">
{{ page_header('Send letters') }}
<p class="govuk-body">
It costs between 41 pence and £1.28 to send a letter using Notify.
</p>
<p class="govuk-body">
See <a class="govuk-link govuk-link--no-visited-state" href="{{ url_for(".pricing", _anchor="letters") }}">pricing</a> for the list
of rates.
</p>
{% call form_wrapper() %}
{{ form.enabled }}
{{ page_footer('Save') }}
{% endcall %}
</div>
</div>
{% endblock %}

View File

@@ -27,7 +27,7 @@
after your free allowance.
</p>
<p class="govuk-body">
See <a class="govuk-link govuk-link--no-visited-state" href="{{ url_for(".pricing", _anchor="letters") }}">pricing</a> for more details.
See <a class="govuk-link govuk-link--no-visited-state" href="{{ url_for(".pricing") }}">pricing</a> for more details.
</p>
{% call form_wrapper() %}
{{ form.enabled }}

View File

@@ -58,8 +58,7 @@
Control your content
</h2>
<p class="govuk-body">
You do not need any technical knowledge to create email,
text&nbsp;message or letter templates.
You do not need any technical knowledge to create message templates.
</p>
</div>
<div class="govuk-grid-column-one-half">
@@ -152,11 +151,6 @@
<span>free text messages a year,<br>
then {{ sms_rate }} pence per message</span>
</div>
<div class="govuk-grid-column-one-half">
<h3 class="govuk-visually-hidden">Letters</h3>
<div class="product-page-big-number">41 pence</div>
<span>to print and post a one page letter</span>
</div>
<div class="govuk-grid-column-one-half">
<p class="align-with-big-number-hint">
Theres no monthly charge, no setup fee and no&nbsp;procurement process.

View File

@@ -1,18 +1,6 @@
{% from "components/banner.html" import banner_wrapper %}
<div class="govuk-grid-column-full template-container">
{% if current_user.has_permissions('manage_templates') and template.template_type == 'letter' %}
{% if not current_service.letter_branding_id %}
<a href="{{ url_for(".letter_branding_request", service_id=current_service.id, from_template=template.id) }}" class="govuk-link govuk-link--no-visited-state edit-template-link-letter-branding">Add logo</a>
{% endif %}
<a href="{{ url_for(".edit_template_postage", service_id=current_service.id, template_id=template.id) }}" class="govuk-link govuk-link--no-visited-state edit-template-link-letter-postage">Change<span class="govuk-visually-hidden"> postage</span></a>
<a href="{{ url_for(".edit_service_template", service_id=current_service.id, template_id=template.id) }}" class="govuk-link govuk-link--no-visited-state edit-template-link-letter-body">Edit<span class="govuk-visually-hidden"> letter template</span></a>
{% if current_service.count_letter_contact_details %}
<a href="{{ url_for(".set_template_sender", service_id=current_service.id, template_id=template.id) }}" class="govuk-link govuk-link--no-visited-state edit-template-link-letter-contact">Edit<span class="govuk-visually-hidden"> letter contact block</span></a>
{% else %}
<a href="{{ url_for(".service_add_letter_contact", service_id=current_service.id, from_template=template.id) }}" class="govuk-link govuk-link--no-visited-state edit-template-link-letter-contact">Edit<span class="govuk-visually-hidden"> letter contact block</span></a>
{% endif %}
{% endif %}
{{ template|string }}
</div>
<br>
@@ -30,34 +18,19 @@
{% else %}
<div class="bottom-gutter-2-3">
<div class="govuk-grid-row">
{% if template.template_type == 'letter' %}
{% if letter_too_long %}
{% call banner_wrapper(type='dangerous') %}
{% include "partials/check/letter-too-long.html" %}
{% endcall %}
{% endif %}
{% if current_user.has_permissions('send_messages', restrict_admin_usage=True) and not letter_too_long %}
<div class="govuk-grid-column-one-half">
<a href="{{ url_for(".set_sender", service_id=current_service.id, template_id=template.id) }}" class="govuk-link govuk-link--no-visited-state pill-separate-item">
Prepare to send<span class="govuk-visually-hidden"> a message using this template</span>
</a>
</div>
{% endif %}
{% else %}
{% if current_user.has_permissions('send_messages', restrict_admin_usage=True) %}
<div class="govuk-grid-column-one-half">
<a href="{{ url_for(".set_sender", service_id=current_service.id, template_id=template.id) }}" class="govuk-link govuk-link--no-visited-state pill-separate-item">
Prepare to send<span class="govuk-visually-hidden"> a message using this template</span>
</a>
</div>
{% endif %}
{% if current_user.has_permissions('manage_templates') %}
<div class="govuk-grid-column-one-half">
<a href="{{ url_for(".edit_service_template", service_id=current_service.id, template_id=template.id) }}" class="govuk-link govuk-link--no-visited-state pill-separate-item">
Edit
</a>
</div>
{% endif %}
{% if current_user.has_permissions('send_messages', restrict_admin_usage=True) %}
<div class="govuk-grid-column-one-half">
<a href="{{ url_for(".set_sender", service_id=current_service.id, template_id=template.id) }}" class="govuk-link govuk-link--no-visited-state pill-separate-item">
Prepare to send<span class="govuk-visually-hidden"> a message using this template</span>
</a>
</div>
{% endif %}
{% if current_user.has_permissions('manage_templates') %}
<div class="govuk-grid-column-one-half">
<a href="{{ url_for(".edit_service_template", service_id=current_service.id, template_id=template.id) }}" class="govuk-link govuk-link--no-visited-state pill-separate-item">
Edit
</a>
</div>
{% endif %}
</div>
</div>

View File

@@ -27,7 +27,7 @@
{% else %}
You need to ask your service manager to add templates before you can
{% endif %}
send emails, text messages or letters.
send messages.
</p>
{% else %}

View File

@@ -1,30 +0,0 @@
{% extends "withnav_template.html" %}
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
{% from "components/back-link/macro.njk" import govukBackLink %}
{% block service_page_title %}
Change postage
{% endblock %}
{% block backLink %}
{{ govukBackLink({ "href": url_for('.view_template', service_id=service_id, template_id=template_id) }) }}
{% endblock %}
{% block maincolumn_content %}
{{ page_header('Change postage') }}
{% call form_wrapper() %}
<div class="govuk-grid-row">
<div class="govuk-grid-column-five-sixths">
{{ form.postage }}
{{ page_footer('Save') }}
</div>
<div class="govuk-grid-column-three-quarters">
{% include "partials/templates/guidance-postage.html" %}
</div>
</div>
{% endcall %}
{% endblock %}

View File

@@ -70,14 +70,12 @@
</span>
&emsp;
{% endif %}
{% if template.template_type not in ('letter') %}
{% if not template._template.redact_personalisation %}
<span class="page-footer-link page-footer-delete-link-without-button">
<a class="govuk-link govuk-link--destructive" href="{{ url_for('.confirm_redact_template', service_id=current_service.id, template_id=template.id) }}">Hide personalisation after sending</a>
</span>
{% else %}
<p class="hint">Personalisation is hidden after sending</p>
{% endif %}
{% if not template._template.redact_personalisation %}
<span class="page-footer-link page-footer-delete-link-without-button">
<a class="govuk-link govuk-link--destructive" href="{{ url_for('.confirm_redact_template', service_id=current_service.id, template_id=template.id) }}">Hide personalisation after sending</a>
</span>
{% else %}
<p class="hint">Personalisation is hidden after sending</p>
{% endif %}
{% endif %}
</div>

View File

@@ -13,7 +13,6 @@
<ul class="list list-bullet">
<li>send 50 text messages and emails per day</li>
<li>send messages to yourself and other people in your team</li>
<!-- <li>create letter templates, but not send them</li> -->
</ul>
{% if current_service and current_service.trial_mode %}

View File

@@ -1,87 +0,0 @@
{% extends "withnav_template.html" %}
{% from "components/banner.html" import banner_wrapper %}
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/back-link/macro.njk" import govukBackLink %}
{% from "components/file-upload.html" import file_upload %}
{% block service_page_title %}
{{ original_filename }}
{% endblock %}
{% block backLink %}
{{ govukBackLink({ "href": url_for('main.upload_letter', service_id=current_service.id) }) }}
{% endblock %}
{% block maincolumn_content %}
{% if status == 'invalid' and message %}
{% include "partials/check/letter-validation-failed-banner.html" %}
<div class="bottom-gutter-1-2">
<div class="js-stick-at-top-when-scrolling">
<div class="form-group">
{{ file_upload(
re_upload_form.file,
allowed_file_extensions=['pdf'],
action=url_for('main.upload_letter', service_id=current_service.id),
button_text='Upload your file again'
) }}
</div>
<a href="#content" class="govuk-link govuk-link--no-visited-state back-to-top-link">Back to top</a>
</div>
</div>
{% elif current_service.trial_mode %}
{% call banner_wrapper(type='dangerous') %}
{% with
count_of_recipients=1
%}
{% include "partials/check/trying-to-send-letters-in-trial-mode.html" %}
{% endwith %}
{% endcall %}
{% else %}
{{ page_header(
original_filename
) }}
{% endif %}
<div class="letter-sent">
{{ template|string }}
</div>
{% if status == 'valid' %}
<div class="js-stick-at-bottom-when-scrolling">
<p class="top-gutter-0 bottom-gutter-1-2 send-recipient" title="{{ recipient }}">
Recipient: {{ postal_address.as_single_line }}
</p>
{% if current_service.live %}
{% if postal_address.international %}
<p class="govuk-body">
Postage: international
</p>
{% endif %}
<form method="post" enctype="multipart/form-data" action="{{url_for(
'main.send_uploaded_letter',
service_id=current_service.id,
file_id=file_id,
)}}" class='page-footer'>
{% if form.show_postage %}
{{ form.postage(param_extensions={
"classes": "govuk-radios--inline",
"formGroup": {
"classes": "govuk-!-margin-bottom-2"
},
"fieldset": {
"legend": {
"classes": "govuk-visually-hidden"
}
}
}) }}
{% endif %}
{{ page_footer("Send 1 letter") }}
</form>
{% endif %}
</div>
{% endif %}
{% endblock %}

View File

@@ -23,7 +23,6 @@
<li><a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('main.message_status') }}">message status types</a></li>
<li><a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('main.features_email') }}">email replies</a></li>
<li><a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('main.features_sms') }}">text message replies</a></li>
<li><a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('main.features_letters') }}">letters</a></li>
</ul>
</div>