From 5d873bdc45d8ed7a56809c915cc6e37fcbf590af Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Fri, 1 Apr 2016 10:54:55 +0100 Subject: [PATCH 1/6] Show a tour when users first create a service MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit adds a 3 screen tour, similar to those used on GOV.UK Verify and Passports. We guerilla tested this on Friday, and it really helped users to build a mental model of how Notify works, so that when they’re playing around with it they have a greater sense of what they’re aiming to do. This makes concepts like templates and placeholders click more quickly. https://www.pivotaltracker.com/story/show/116710119 --- app/assets/images/tour-next.png | Bin 0 -> 983 bytes app/assets/images/tour/2.png | Bin 0 -> 19268 bytes app/assets/images/tour/3.png | Bin 0 -> 24773 bytes app/assets/images/tour/4.png | Bin 0 -> 72610 bytes app/assets/stylesheets/app.scss | 2 +- app/assets/stylesheets/components/banner.scss | 67 +++++++++++++++--- app/main/__init__.py | 3 +- app/main/views/add_service.py | 2 +- app/main/views/tour.py | 15 ++++ app/templates/views/dashboard/dashboard.html | 36 +++++----- .../views/dashboard/get-started.html | 37 ++++------ .../views/dashboard/trial-mode-banner.html | 18 +---- app/templates/views/tour/1.html | 25 +++++++ app/templates/views/tour/2.html | 29 ++++++++ app/templates/views/tour/3.html | 32 +++++++++ app/templates/views/tour/4.html | 28 ++++++++ tests/app/main/views/test_add_service.py | 2 +- tests/app/main/views/test_tour.py | 19 +++++ 18 files changed, 246 insertions(+), 69 deletions(-) create mode 100644 app/assets/images/tour-next.png create mode 100644 app/assets/images/tour/2.png create mode 100644 app/assets/images/tour/3.png create mode 100644 app/assets/images/tour/4.png create mode 100644 app/main/views/tour.py create mode 100644 app/templates/views/tour/1.html create mode 100644 app/templates/views/tour/2.html create mode 100644 app/templates/views/tour/3.html create mode 100644 app/templates/views/tour/4.html create mode 100644 tests/app/main/views/test_tour.py diff --git a/app/assets/images/tour-next.png b/app/assets/images/tour-next.png new file mode 100644 index 0000000000000000000000000000000000000000..1cdfc821805dc1fc80c86562a4a5e20f4cbbe881 GIT binary patch literal 983 zcmeAS@N?(olHy`uVBq!ia0vp^0YKcx!3HFksrG*YQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?>+PT^vIyZoRp)KU>66g#E+bP!{RcE=h^$7wQ#U6+&H( z+;dv=;-qQQGkFiM*(KAa2RU9|5pg3zLO^Au4wD$8wctg+ODacHc5gb!(Yf>Ny?y4! z?~i{!SQIW}{2{R{uWp}TKFR;mDhHDS6csj@A2h=_Z%5EDn2NzaLD0^XlFkn%rN@_Vg9-;5rWSJ!48ad(GWxWpGa0DPt2%I{Vilw6gO#jPnwAR%2+gx{$gEh!p!#Sf zo#ld1T!}+=MIfW@BUk1vUE-`4jN%F$URO9W+CE@q{?a7QazR+mdV#r3m_vU> zPD9+s2nO576B+kDp2*PX&cGtaC{V%T@Ia6Vj?00a)3f`5nq+E!WWD*kJwCqC{RQ)F zrK;oBU-WHsls@!HvYWZG#GUndqT=$vbOtxS6U#k;)rRhZjn|WGKQIVZm}W2g-DO(% t@8au?r^V03{)iH3{~w0|!>hITJ=lwK9|3bJgQu&X%Q~loCIF6OkTn1R literal 0 HcmV?d00001 diff --git a/app/assets/images/tour/2.png b/app/assets/images/tour/2.png new file mode 100644 index 0000000000000000000000000000000000000000..4c4a82dbe2e6c29492f10906b99d68c1d1f93bc0 GIT binary patch literal 19268 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 literal 0 HcmV?d00001 diff --git a/app/assets/stylesheets/app.scss b/app/assets/stylesheets/app.scss index c5e88e8c9..6fbc015c6 100644 --- a/app/assets/stylesheets/app.scss +++ b/app/assets/stylesheets/app.scss @@ -127,4 +127,4 @@ a[rel="external"] { @include media(tablet) { @include external-link-19; } -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/components/banner.scss b/app/assets/stylesheets/components/banner.scss index 540ce1e38..d92d278c3 100644 --- a/app/assets/stylesheets/components/banner.scss +++ b/app/assets/stylesheets/components/banner.scss @@ -71,7 +71,7 @@ a { &:link, &:visited { - color: $text-colour; + padding: $gutter-half; text-decoration: underline; } } @@ -110,13 +110,54 @@ background: $govuk-blue; color: $white; margin-top: $gutter; + padding: $gutter-half; - .heading-medium { + p { margin: 0 0 10px 0; } + &-action { + text-align: right; + } + +} + +.banner-tour { + + @extend %banner; + background: $govuk-blue; + color: $white; + margin-top: $gutter; + padding: $gutter * 2; + + .heading-large { + margin: 0 0 $gutter 0; + } + + p { + + margin-bottom: $gutter; + + &:last-child { + margin-bottom: 0 + } + + & + p { + margin-top: -$gutter-half; + } + + } + a { + @include bold-24; + display: inline-block; + background-image: file-url('tour-next.png'); + background-size: auto 24px; + padding: 0 23px 0 0; + background-position: right 3px; + background-repeat: no-repeat; + &:link, &:visited { color: $white; @@ -124,19 +165,25 @@ &:hover, &:active { - color: $light-blue-25; + background-color: $link-hover-colour; + outline: 10px solid $link-hover-colour; + } + + &:active, + &:focus { + background-color: $yellow; + outline: 10px solid $yellow; } } - .big-number { - - margin-top: 10px; - - &-label { - padding-bottom: 0; - } + img { + max-width: 100%; + display: block; + } + &-image-flush-bottom { + margin: 40px 0 -60px 0; } } diff --git a/app/main/__init__.py b/app/main/__init__.py index 3a0af5a11..0d4d793ae 100644 --- a/app/main/__init__.py +++ b/app/main/__init__.py @@ -23,5 +23,6 @@ from app.main.views import ( api_keys, manage_users, invites, - all_services + all_services, + tour ) diff --git a/app/main/views/add_service.py b/app/main/views/add_service.py index db9628c78..3ef20c86b 100644 --- a/app/main/views/add_service.py +++ b/app/main/views/add_service.py @@ -44,7 +44,7 @@ def add_service(): user_id=session['user_id'], email_from=email_from) - return redirect(url_for('main.service_dashboard', service_id=service_id)) + return redirect(url_for('main.tour', service_id=service_id, page=1)) else: return render_template( 'views/add-service.html', diff --git a/app/main/views/tour.py b/app/main/views/tour.py new file mode 100644 index 000000000..3615b2a9c --- /dev/null +++ b/app/main/views/tour.py @@ -0,0 +1,15 @@ +from flask import render_template +from flask_login import login_required + +from app.main import main + + +@main.route("/services//tour/") +@login_required +def tour(service_id, page): + return render_template( + 'views/tour/{}.html'.format(page), + service_id=service_id, # TODO: fix when Nick’s PR is merged + current_page=page, + next_page=(page + 1) + ) diff --git a/app/templates/views/dashboard/dashboard.html b/app/templates/views/dashboard/dashboard.html index 4fe589ed5..bb97d9c7b 100644 --- a/app/templates/views/dashboard/dashboard.html +++ b/app/templates/views/dashboard/dashboard.html @@ -5,26 +5,26 @@ {% endblock %} {% block maincolumn_content %} + + {% if not templates and current_user.has_permissions(['send_texts', 'send_emails', 'send_letters'], any_=True) %} + {% include 'views/dashboard/get-started.html' %} + {% elif service.restricted %} +
+ {% include 'views/dashboard/trial-mode-banner.html' %} +
+ {% endif %} - {% if service.restricted %} - {% include 'views/dashboard/trial-mode-banner.html' %} - {% endif %} - {% if not templates and current_user.has_permissions(['send_texts', 'send_emails', 'send_letters'], any_=True) %} - {% include 'views/dashboard/get-started.html' %} - {% endif %} - - {% if templates %} -
- {% include 'views/dashboard/today.html' %} -
+
+ {% include 'views/dashboard/today.html' %} +
- {% include 'views/dashboard/jobs.html' %} - {% endif %} + {% include 'views/dashboard/jobs.html' %} + {% endblock %} diff --git a/app/templates/views/dashboard/get-started.html b/app/templates/views/dashboard/get-started.html index a2fa514d1..ae91dc2df 100644 --- a/app/templates/views/dashboard/get-started.html +++ b/app/templates/views/dashboard/get-started.html @@ -1,30 +1,23 @@ {% from "components/banner.html" import banner_wrapper %} -

Get started

{% if current_user.has_permissions(['manage_templates']) %} -

- You need to set up a template before you can send messages -

-
+ {% call banner_wrapper(type='tour') %} +

You’re ready to get started

+

+ + Set up a text message template + +

+

+ + Set up an email template + +

+ {% endcall %} {% else %} -

+ {% call banner_wrapper(type='mode') %}

You need to ask your service manager to set up some templates before you can send messages

-

+ {% endcall %} {% endif %} diff --git a/app/templates/views/dashboard/trial-mode-banner.html b/app/templates/views/dashboard/trial-mode-banner.html index 3a3c34829..2265c1d10 100644 --- a/app/templates/views/dashboard/trial-mode-banner.html +++ b/app/templates/views/dashboard/trial-mode-banner.html @@ -2,24 +2,12 @@ {% from "components/big-number.html" import big_number %} {% call banner_wrapper(type="mode") %} - -

Trial mode

-

- We’ll only deliver messages to you and members of your team -
- Find out more -

+ Your service is in trial mode
-
-   -
-
- {{ big_number( - service.limit - statistics.get('emails_requested', 0) - statistics.get('sms_requested', 0), - 'messages left today' - ) }} +
{% endcall %} diff --git a/app/templates/views/tour/1.html b/app/templates/views/tour/1.html new file mode 100644 index 000000000..c25116f6a --- /dev/null +++ b/app/templates/views/tour/1.html @@ -0,0 +1,25 @@ +{% extends "withoutnav_template.html" %} +{% from "components/textbox.html" import textbox %} +{% from "components/page-footer.html" import page_footer %} +{% from "components/banner.html" import banner_wrapper %} + +{% block page_title %} + {{heading}} – GOV.UK Notify +{% endblock %} + +{% block maincolumn_content %} + + {% call banner_wrapper(type='tour') %} +

Trial mode

+

+ To start off with, you can only send messages to yourself. +

+

+ We can remove these restrictions when you’re ready. +

+ + Next + + {% endcall %} + +{% endblock %} diff --git a/app/templates/views/tour/2.html b/app/templates/views/tour/2.html new file mode 100644 index 000000000..ecad22e6a --- /dev/null +++ b/app/templates/views/tour/2.html @@ -0,0 +1,29 @@ +{% extends "withoutnav_template.html" %} +{% from "components/textbox.html" import textbox %} +{% from "components/page-footer.html" import page_footer %} +{% from "components/banner.html" import banner_wrapper %} + +{% block page_title %} + {{heading}} – GOV.UK Notify +{% endblock %} + +{% block maincolumn_content %} + + {% call banner_wrapper(type='tour') %} +

Start with templates

+

+ Set up a template like this: +

+

+ A template for a text message with placeholders for the recipients name, document and date +

+ + Next + + {% endcall %} + +{% endblock %} diff --git a/app/templates/views/tour/3.html b/app/templates/views/tour/3.html new file mode 100644 index 000000000..1cef34c1c --- /dev/null +++ b/app/templates/views/tour/3.html @@ -0,0 +1,32 @@ +{% extends "withoutnav_template.html" %} +{% from "components/textbox.html" import textbox %} +{% from "components/page-footer.html" import page_footer %} +{% from "components/banner.html" import banner_wrapper %} + +{% block page_title %} + {{heading}} – GOV.UK Notify +{% endblock %} + +{% block maincolumn_content %} + + {% call banner_wrapper(type='tour') %} +

Add recipients

+

+ Add recipients by uploading a .csv spreadsheet: +

+

+ A screenshot of a spreadsheet containing data about three people +

+

+ Developers, you can add data automatically using an API +

+ + Next + + {% endcall %} + +{% endblock %} diff --git a/app/templates/views/tour/4.html b/app/templates/views/tour/4.html new file mode 100644 index 000000000..f1284d3ef --- /dev/null +++ b/app/templates/views/tour/4.html @@ -0,0 +1,28 @@ +{% extends "withoutnav_template.html" %} +{% from "components/textbox.html" import textbox %} +{% from "components/page-footer.html" import page_footer %} +{% from "components/banner.html" import banner_wrapper %} + +{% block page_title %} + {{heading}} – GOV.UK Notify +{% endblock %} + +{% block maincolumn_content %} + + {% call banner_wrapper(type='tour') %} +

Send your messages

+

+ Notify merges your data with the template and sends the messages +

+ + Next + + + {% endcall %} + +{% endblock %} diff --git a/tests/app/main/views/test_add_service.py b/tests/app/main/views/test_add_service.py index 1da5c1ab5..d82fbd673 100644 --- a/tests/app/main/views/test_add_service.py +++ b/tests/app/main/views/test_add_service.py @@ -26,7 +26,7 @@ def test_should_add_service_and_redirect_to_next_page(app_, url_for('main.add_service'), data={'name': 'testing the post'}) assert response.status_code == 302 - assert response.location == url_for('main.service_dashboard', service_id=101, _external=True) + assert response.location == url_for('main.tour', service_id=101, page=1, _external=True) assert mock_get_services.called mock_create_service.asset_called_once_with(service_name='testing the post', active=False, diff --git a/tests/app/main/views/test_tour.py b/tests/app/main/views/test_tour.py new file mode 100644 index 000000000..1fe0a0068 --- /dev/null +++ b/tests/app/main/views/test_tour.py @@ -0,0 +1,19 @@ +import pytest +from flask import url_for + +import app + + +@pytest.mark.parametrize("page", range(1, 5)) +def test_should_render_tour_pages( + app_, + api_user_active, + mocker, + page +): + with app_.test_request_context(): + with app_.test_client() as client: + client.login(api_user_active, mocker) + response = client.get(url_for('main.tour', service_id=101, page=page)) + assert response.status_code == 200 + assert 'Next' in response.get_data(as_text=True) From eaa72074db38ad24702b77b9bdd6a912a3cdb9e2 Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Wed, 30 Mar 2016 11:39:16 +0100 Subject: [PATCH 2/6] =?UTF-8?q?Enhance=20the=20=E2=80=98how=20to=20do=20pl?= =?UTF-8?q?aceholders=E2=80=99=20hint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit makes the ‘how to do placeholders’ box part of the tour, with the same blue background. It also adds some Javascript enhancement so that: - it responds to the contents of the message template - has a ‘show me’ link which inserts ‘Dear ((name))’ into the template contents textbox We’ve found that this has helped people understnad what placeholders are, and how to do them. --- app/assets/javascripts/highlightTags.js | 42 ++++++++++++++++++- app/assets/stylesheets/components/banner.scss | 5 +++ .../stylesheets/components/textbox.scss | 2 +- .../stylesheets/views/edit-template.scss | 24 ++++++++--- app/main/forms.py | 2 +- app/templates/views/edit-email-template.html | 21 ++++------ app/templates/views/edit-sms-template.html | 21 ++++------ 7 files changed, 84 insertions(+), 33 deletions(-) diff --git a/app/assets/javascripts/highlightTags.js b/app/assets/javascripts/highlightTags.js index ca4359111..f4022710c 100644 --- a/app/assets/javascripts/highlightTags.js +++ b/app/assets/javascripts/highlightTags.js @@ -7,6 +7,25 @@ const tagPattern = /\(\([^\)\(]+\)\)/g; + const getPlaceholderHint = function(placeholders) { + if (0 === placeholders.length) { + return ` +

Add fields using ((double brackets))

+ Show me how + `; + } + if (1 === placeholders.length) { + return ` +

Add fields using ((double brackets))

+

You’ll populate the ‘${placeholders[0]}’ field when you send messages using this template

+ `; + } + return ` +

Add fields using ((double brackets))

+

You’ll populate your fields when you send some messages

+ `; + }; + Modules.HighlightTags = function() { this.start = function(textarea) { @@ -22,6 +41,9 @@ `)) .on("input", this.update); + this.$placeHolderHint = $('#placeholder-hint') + .on("click", ".placeholder-hint-action", this.demo); + this.initialHeight = this.$textbox.height(); this.$backgroundMaskForeground.width( @@ -40,14 +62,30 @@ ) ); + this.escapedMessage = () => $('
').text(this.$textbox.val()).html(); + + this.listPlaceholders = () => this.escapedMessage().match(tagPattern) || []; + + this.listPlaceholdersWithoutBrackets = () => this.listPlaceholders().map( + placeholder => placeholder.substring(2, placeholder.length - 2) + ); + this.replacePlaceholders = () => this.$backgroundMaskForeground.html( - $('
').text(this.$textbox.val()).html().replace( + this.escapedMessage().replace( tagPattern, match => `${match}` ) ); + this.hint = () => this.$placeHolderHint.html( + getPlaceholderHint(this.listPlaceholdersWithoutBrackets()) + ); + this.update = () => ( - this.replacePlaceholders() && this.resize() + this.replacePlaceholders() && this.resize() && this.hint() + ); + + this.demo = () => ( + this.$textbox.val((i, current) => `Dear ((name)), ${current}`) && this.update() ); }; diff --git a/app/assets/stylesheets/components/banner.scss b/app/assets/stylesheets/components/banner.scss index d92d278c3..068c7f7c5 100644 --- a/app/assets/stylesheets/components/banner.scss +++ b/app/assets/stylesheets/components/banner.scss @@ -80,6 +80,11 @@ list-style-type: decimal; } + p { + @include core-19; + margin: 0 0 10px 0; + } + } .banner-tip-with-tick { diff --git a/app/assets/stylesheets/components/textbox.scss b/app/assets/stylesheets/components/textbox.scss index 703b3b8cf..e6e9e6021 100644 --- a/app/assets/stylesheets/components/textbox.scss +++ b/app/assets/stylesheets/components/textbox.scss @@ -1,6 +1,6 @@ .textbox-highlight { - $tag-background: rgba($light-blue, 0.7); + $tag-background: rgba($light-blue, 0.6); &-wrapper { position: relative; diff --git a/app/assets/stylesheets/views/edit-template.scss b/app/assets/stylesheets/views/edit-template.scss index dd1c8e789..bc20c53ae 100644 --- a/app/assets/stylesheets/views/edit-template.scss +++ b/app/assets/stylesheets/views/edit-template.scss @@ -1,9 +1,23 @@ -.edit-template { +.placeholder-hint { - &-placeholder-hint { - display: block; - padding-top: 20px; - //color: $secondary-text-colour; + display: block; + + &-title { + @include bold-19; } + &-action { + + @include bold-19; + display: inline-block; + text-decoration: underline; + cursor: pointer; + + &:active { + background: $yellow-25; + outline: none; + } + + } + } diff --git a/app/main/forms.py b/app/main/forms.py index 9153a9427..9dd12c74a 100644 --- a/app/main/forms.py +++ b/app/main/forms.py @@ -202,7 +202,7 @@ class SMSTemplateForm(Form): validators=[DataRequired(message="Template name cannot be empty")]) template_content = TextAreaField( - u'Message', + u'Message content', validators=[DataRequired(message="Template content cannot be empty")]) diff --git a/app/templates/views/edit-email-template.html b/app/templates/views/edit-email-template.html index 0505fc97c..9342308a6 100644 --- a/app/templates/views/edit-email-template.html +++ b/app/templates/views/edit-email-template.html @@ -20,23 +20,20 @@
{{ textbox(form.template_content, highlight_tags=True, width='1-1') }} + {{ page_footer( + 'Save', + delete_link=url_for('.delete_service_template', service_id=service_id, template_id=template_id) if template_id or None, + delete_link_text='Delete this template' + ) }}
-
- {{ page_footer( - 'Save', - delete_link=url_for('.delete_service_template', service_id=service_id, template_id=template_id) if template_id or None, - delete_link_text='Delete this template' - ) }} diff --git a/app/templates/views/edit-sms-template.html b/app/templates/views/edit-sms-template.html index a571c300a..dc845e246 100644 --- a/app/templates/views/edit-sms-template.html +++ b/app/templates/views/edit-sms-template.html @@ -19,23 +19,20 @@
{{ textbox(form.template_content, highlight_tags=True, width='1-1') }} + {{ page_footer( + 'Save', + delete_link=url_for('.delete_service_template', service_id=service_id, template_id=template_id) if template_id or None, + delete_link_text='Delete this template' + ) }}
-
- {{ page_footer( - 'Save', - delete_link=url_for('.delete_service_template', service_id=service_id, template_id=template_id) if template_id or None, - delete_link_text='Delete this template' - ) }} From 5087157d2b352626389a3a1c3171377f7c108d1a Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Sun, 3 Apr 2016 10:43:26 +0100 Subject: [PATCH 3/6] Make add service page much simpler MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We reckon that most of the text on this page wasn’t helping. --- app/templates/views/add-service.html | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/app/templates/views/add-service.html b/app/templates/views/add-service.html index ec03a91e9..05395d5c7 100644 --- a/app/templates/views/add-service.html +++ b/app/templates/views/add-service.html @@ -15,25 +15,6 @@ When people receive notifications, who should they be from? -

- Be specific to your service. Remember that there might be - other people in your organisation using GOV.UK Notify. -

- -

- Users will see this: -

- -
    -
  • - at the start of every text message, eg ‘Vehicle tax: we received your - payment, thank you’ -
  • -
  • - as your email sender name -
  • -
-
{{ textbox(form.name, hint="You can change this later") }} From 6030cccb5dd124e57fcff9331db180d16ef1cd44 Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Sun, 3 Apr 2016 12:13:29 +0100 Subject: [PATCH 4/6] =?UTF-8?q?Remove=20the=20=E2=80=98next=20step?= =?UTF-8?q?=E2=80=99=20banner=20from=20choose=20template?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This page should be obvious enough that this banner isn’t needed. Will have to keep an eye on this. --- app/main/views/send.py | 2 -- app/templates/views/choose-template.html | 11 ----------- 2 files changed, 13 deletions(-) diff --git a/app/main/views/send.py b/app/main/views/send.py index 6b1fe2618..5ce29476c 100644 --- a/app/main/views/send.py +++ b/app/main/views/send.py @@ -76,7 +76,6 @@ def choose_template(service_id, template_type): if template_type not in ['email', 'sms']: abort(404) - jobs = job_api_client.get_job(service_id)['data'] return render_template( 'views/choose-template.html', @@ -90,7 +89,6 @@ def choose_template(service_id, template_type): template_type=template_type, page_heading=get_page_headings(template_type), service=service, - has_jobs=len(jobs), service_id=service_id ) diff --git a/app/templates/views/choose-template.html b/app/templates/views/choose-template.html index 2d0b56551..4e1a0dcbf 100644 --- a/app/templates/views/choose-template.html +++ b/app/templates/views/choose-template.html @@ -37,17 +37,6 @@ {% endif %} - {% if not has_jobs %} - {% if current_user.has_permissions(permissions=['send_texts', 'send_emails', 'send_letters'], any_=True) %} - {{ banner( - """ - Send yourself a test - """, - subhead='Next step:', - type="tip" - )}} - {% endif %} - {% endif %}
{% for template in templates %}
From b9cd669439950af2065e81041d85c43f9b0b1d50 Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Sat, 2 Apr 2016 21:18:28 +0100 Subject: [PATCH 5/6] =?UTF-8?q?Remove=20some=20banners=20which=20aren?= =?UTF-8?q?=E2=80=99t=20used/wanted?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/stylesheets/components/banner.scss | 51 ------------------- app/templates/views/api-keys.html | 7 --- app/templates/views/styleguide.html | 7 --- 3 files changed, 65 deletions(-) diff --git a/app/assets/stylesheets/components/banner.scss b/app/assets/stylesheets/components/banner.scss index 068c7f7c5..822392b34 100644 --- a/app/assets/stylesheets/components/banner.scss +++ b/app/assets/stylesheets/components/banner.scss @@ -58,57 +58,6 @@ } -%banner-tip, -.banner-tip { - - @extend %banner; - @include bold-19; - background-color: $yellow; - color: $text-colour; - text-align: left; - margin-top: 0; - - a { - &:link, - &:visited { - padding: $gutter-half; - text-decoration: underline; - } - } - - ol { - list-style-type: decimal; - } - - p { - @include core-19; - margin: 0 0 10px 0; - } - -} - -.banner-tip-with-tick { - @extend %banner-with-tick; - @extend %banner-tip; - background-image: file-url('tick-black.png'); -} - -.banner-info, -.banner-important { - @extend %banner; - background: $white; - color: $text-colour; - background-image: file-url('icon-important-2x.png'); - background-size: 34px 34px; - background-position: 0 0; - background-repeat: no-repeat; - padding: 7px 0 5px 50px; -} - -.banner-info { - background-image: file-url('icon-information-2x.png'); -} - .banner-mode { @extend %banner; diff --git a/app/templates/views/api-keys.html b/app/templates/views/api-keys.html index b7434514c..b9b5fda72 100644 --- a/app/templates/views/api-keys.html +++ b/app/templates/views/api-keys.html @@ -22,13 +22,6 @@ developer documentation.

- {{ banner( - 'You can only send messages to yourself until you request to go live'.format( - url_for('.service_request_to_go_live', service_id=service_id) - )|safe, - type='important' - ) }} -

Service ID

diff --git a/app/templates/views/styleguide.html b/app/templates/views/styleguide.html index 04178f090..2a767e3a9 100644 --- a/app/templates/views/styleguide.html +++ b/app/templates/views/styleguide.html @@ -36,13 +36,6 @@ {{ banner('Are you sure you want to delete?', 'dangerous', delete_button="Yes, delete this thing")}} - {{ banner( - 'Send your first message'|safe, - subhead='Get started', - type='tip' - )}} - - {{ banner('You could go to jail', 'important')}}
From 953be15d84ce2f71396a2310cacacd9dad6d4a48 Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Mon, 4 Apr 2016 10:42:04 +0100 Subject: [PATCH 6/6] Make form error messages consistent MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We were using a bunch of different styles for form error messages, including: - having the name of the field in the error, or not - can not/cannot/can’t (GDS content styleguide recommends using contractions) --- app/main/forms.py | 34 +++++++++++------------ tests/app/main/views/test_add_service.py | 2 +- tests/app/main/views/test_manage_users.py | 2 +- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/app/main/forms.py b/app/main/forms.py index 9dd12c74a..9d400470b 100644 --- a/app/main/forms.py +++ b/app/main/forms.py @@ -21,7 +21,7 @@ from app.main.validators import (Blacklist, CsvFileValidator, ValidEmailDomainRe def email_address(label='Email address'): return EmailField(label, validators=[ Length(min=5, max=255), - DataRequired(message='Email cannot be empty'), + DataRequired(message='Can’t be empty'), Email(message='Enter a valid email address'), ValidEmailDomainRegex()]) @@ -37,35 +37,35 @@ class UKMobileNumber(TelField): def mobile_number(): return UKMobileNumber('Mobile phone number', - validators=[DataRequired(message='Cannot be empty')]) + validators=[DataRequired(message='Can’t be empty')]) def password(label='Create a password'): return PasswordField(label, - validators=[DataRequired(message='Password can not be empty'), - Length(10, 255, message='Password must be at least 10 characters'), + validators=[DataRequired(message='Can’t be empty'), + Length(10, 255, message='Must be at least 10 characters'), Blacklist(message='That password is blacklisted, too common')]) def sms_code(): verify_code = '^\d{5}$' return StringField('Text message code', - validators=[DataRequired(message='Text message confirmation code can not be empty'), + validators=[DataRequired(message='Can’t be empty'), Regexp(regex=verify_code, - message='Text message confirmation code must be 5 digits')]) + message='Must be 5 digits')]) def email_code(): verify_code = '^\d{5}$' return StringField("Email code", - validators=[DataRequired(message='Email confirmation code can not be empty'), - Regexp(regex=verify_code, message='Email confirmation code must be 5 digits')]) + validators=[DataRequired(message='Can’t be empty'), + Regexp(regex=verify_code, message='Must be 5 digits')]) class LoginForm(Form): email_address = StringField('Email address', validators=[ Length(min=5, max=255), - DataRequired(message='Email cannot be empty'), + DataRequired(message='Can’t be empty'), Email(message='Enter a valid email address') ]) password = PasswordField('Password', validators=[ @@ -76,7 +76,7 @@ class LoginForm(Form): class RegisterUserForm(Form): name = StringField('Full name', - validators=[DataRequired(message='Name can not be empty')]) + validators=[DataRequired(message='Can’t be empty')]) email_address = email_address() mobile_number = mobile_number() password = password() @@ -84,7 +84,7 @@ class RegisterUserForm(Form): class RegisterUserFromInviteForm(Form): name = StringField('Full name', - validators=[DataRequired(message='Name can not be empty')]) + validators=[DataRequired(message='Can’t be empty')]) mobile_number = mobile_number() password = password() service = HiddenField('service') @@ -108,7 +108,7 @@ class InviteUserForm(PermissionsForm): def validate_email_address(self, field): if field.data.lower() == self.invalid_email_address: - raise ValidationError("You can't send an invitation to yourself") + raise ValidationError("You can’t send an invitation to yourself") class TwoFactorForm(Form): @@ -149,7 +149,7 @@ class AddServiceForm(Form): name = StringField( 'Service name', validators=[ - DataRequired(message='Service name can’t be empty') + DataRequired(message='Can’t be empty') ] ) @@ -173,7 +173,7 @@ class ServiceNameForm(Form): name = StringField( u'New name', validators=[ - DataRequired(message='Service name can’t be empty') + DataRequired(message='Can’t be empty') ]) def validate_name(self, a): @@ -199,18 +199,18 @@ class ConfirmPasswordForm(Form): class SMSTemplateForm(Form): name = StringField( u'Template name', - validators=[DataRequired(message="Template name cannot be empty")]) + validators=[DataRequired(message="Can’t be empty")]) template_content = TextAreaField( u'Message content', - validators=[DataRequired(message="Template content cannot be empty")]) + validators=[DataRequired(message="Can’t be empty")]) class EmailTemplateForm(SMSTemplateForm): subject = StringField( u'Subject', - validators=[DataRequired(message="Subject cannot be empty")]) + validators=[DataRequired(message="Can’t be empty")]) class ForgotPasswordForm(Form): diff --git a/tests/app/main/views/test_add_service.py b/tests/app/main/views/test_add_service.py index d82fbd673..4162282fc 100644 --- a/tests/app/main/views/test_add_service.py +++ b/tests/app/main/views/test_add_service.py @@ -44,7 +44,7 @@ def test_should_return_form_errors_when_service_name_is_empty(app_, client.login(api_user_active, mocker) response = client.post(url_for('main.add_service'), data={}) assert response.status_code == 200 - assert 'Service name can’t be empty' in response.get_data(as_text=True) + assert 'Can’t be empty' in response.get_data(as_text=True) def test_should_return_form_errors_with_duplicate_service_name_regardless_of_case(app_, diff --git a/tests/app/main/views/test_manage_users.py b/tests/app/main/views/test_manage_users.py index 92c4f0686..a84169e3f 100644 --- a/tests/app/main/views/test_manage_users.py +++ b/tests/app/main/views/test_manage_users.py @@ -260,7 +260,7 @@ def test_user_cant_invite_themselves( page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser') assert page.h1.string.strip() == 'Invite a team member' form_error = page.find('span', class_='error-message').string.strip() - assert form_error == "You can't send an invitation to yourself" + assert form_error == "You can’t send an invitation to yourself" assert not mock_create_invite.called
    -
  1. - {% call banner_wrapper(type="tip") %} - - Set up a text message template - - {% endcall %} -
  2. -
  3. - {% call banner_wrapper(type="tip") %} - - Set up an email template - - {% endcall %} -
  4. -