Commit Graph

458 Commits

Author SHA1 Message Date
Chris Hill-Scott
c4458efa21 Bump utils to 40.2.1
Brings in:
- re-usable `SerialisedModel`
- speed improvements to processing CSVs against email templates

I chose not to rename `JSONModel` or `ModelList` to keep the diff nice
and small.
2020-07-06 09:39:54 +01:00
Chris Hill-Scott
98eb3c61f6 Merge pull request #3498 from alphagov/add-broadcast-template
Allow adding broadcast templates
2020-07-06 09:06:16 +01:00
Chris Hill-Scott
724e8d1838 Make it possible to preview a broadcast template
At the moment this won’t look like much, but it will let us do an
end-to-end run of adding a broadcast template.

At the moment all you can do with a broadcast template is edit it, so
there’s no ‘Send’ link on the page.
2020-07-01 17:49:55 +01:00
David McDonald
d4ed909d0f Revert "Revert "Statsd to prometheus"" 2020-07-01 13:27:12 +01:00
David McDonald
5fb58260e2 Revert "Statsd to prometheus" 2020-07-01 10:00:39 +01:00
David McDonald
e260110d60 Merge pull request #3495 from alphagov/statsd-to-prometheus
Statsd to prometheus
2020-06-30 15:37:40 +01:00
David McDonald
043e6ac69c Add GDS metrics package to admin app
Follows the code from the API
2020-06-30 14:24:34 +01:00
Chris Hill-Scott
7d6802b415 Freeze requirements 2020-06-30 13:50:05 +01:00
Chris Hill-Scott
5335729c31 Import request cache from utils
We’ve making the request cache shared code now so we can remove it from
this app and refer to the version in utils instead.

Delete unused module
2020-06-22 09:39:32 +01:00
Leo Hemsted
fb820306da bump utils 2020-06-18 16:06:18 +01:00
David McDonald
ec0ebd57a9 make freeze requirements 2020-06-18 11:40:49 +01:00
Chris Hill-Scott
f20726a042 Bump utils to 39.4.6 2020-06-16 09:58:07 +01:00
Chris Hill-Scott
c2f851e8de Bump utils to 39.4.5
Changes:
https://github.com/alphagov/notifications-utils/compare/39.4.3...39.4.5
2020-06-15 12:13:30 +01:00
Chris Hill-Scott
b7429fe8a9 Bump utils to 39.4.3
Brings in a bug fix for when a personalisation value is an empty list.
2020-06-09 10:37:16 +01:00
Chris Hill-Scott
18f3f0a7ae Freeze requirements 2020-05-28 10:47:52 +01:00
Chris Hill-Scott
67be9d98c9 Bump utils to 39.4.2 2020-05-27 15:27:30 +01:00
Chris Hill-Scott
9da843ceff Bump utils to 39.4.1 2020-05-26 13:37:04 +01:00
Chris Hill-Scott
d828c1c481 Bump utils to 39.4.0
Adds delivery estimates for letters posted to Europe or the rest of the
world.
2020-05-26 13:37:03 +01:00
Chris Hill-Scott
b2ad7ff3cb Replace format_recipient with PostalAddress.as_single_line
We’ve refactored the code to display an address on a single line with
commas into utils now.
2020-05-21 14:20:18 +01:00
Chris Hill-Scott
064b1eb05a Bump utils to 39.2.0
This will start loggin Zendesk ticket IDs when people use the support
pages.
2020-05-18 11:08:54 +01:00
Chris Hill-Scott
73fe640c9c Bump utils to 39.1.0
Allows letters to be previewed with international postage
2020-05-15 15:37:35 +01:00
Chris Hill-Scott
6782c21031 Merge pull request #3434 from alphagov/bump-utils-39.0.1
Bump utils to 39.0.1
2020-05-07 08:22:13 +01:00
Chris Hill-Scott
aa9ba0f52a Freeze requirements 2020-05-07 08:13:28 +01:00
Chris Hill-Scott
f7dcd68dbe Bump utils to 39.0.1
Fixes a bug with address validation.
2020-05-06 10:23:54 +01:00
Chris Hill-Scott
e5fa413f45 Bump PyExcel to 0.6.1
0.6.0 has been withdrawn because it contained a bug (which wouldn’t
affect us). But we can’t use it now because pip can’t find it to
install. So needs upgrading to the next version now.
2020-05-04 11:53:43 +01:00
Chris Hill-Scott
0ef076f59e Merge pull request #3416 from alphagov/validate-3-lines-csv
Allow all the new address goodness in spreadsheets
2020-05-01 15:37:08 +01:00
Chris Hill-Scott
06108de0f7 Allow international addresses in spreadsheets
For services with permission, they can now put international addresses
into their spreadsheets without getting a postcode error.

This also means they can start using address line 7 instead of postcode,
since it doesn’t make sense to put a country in a field called
‘postcode’. But this will be undocumented to start with, because we’re
not giving any real users the permission.

It does now mean that the number of possible placeholders (7 + postcode)
is greater than the number of allowed placeholders (7), so we have to
account for that in the one-off address flow where we’re populating the
placeholders automatically. We’re sticking with 6 + postcode here for
backwards compatibility.
2020-04-29 16:19:57 +01:00
Chris Hill-Scott
4e1fa30793 Freeze requirements 2020-04-29 11:51:08 +01:00
Chris Hill-Scott
5f0cfc4070 Merge pull request #3424 from alphagov/bump-wtforms
Bump WTForms to 2.3.1
2020-04-29 11:31:59 +01:00
Chris Hill-Scott
f5649d72c9 Explain 3 required address columns
Our rules about address columns are relaxing, so that none of them are
mandatory any more. Instead you just need any 3 of the 7 to make a valid
address.

This commit updates our error messaging to reflect that.
2020-04-27 16:47:49 +01:00
Rebecca Law
48a49f24f0 Update utils to the latest version
The validation for the text message character count has been updated from 612 to 918.

The pricing page still needs to be updated.
2020-04-27 10:27:43 +01:00
Chris Hill-Scott
65bb72ef2f Bump WTForms to 2.3.1
This involves three changes which broke our code.

To validate email addresses, the optional dependency `email-validator`
must be installed<sup>1</sup>. But since we don’t use WTForms’ email
validation, we shouldn’t need to subclass it – it can just be its own
self contained thing. Then we don’t need to add the extra dependency.

When rendering textareas, and extra `\r\n` is inserted at the beginning
<sup>2</sup>. Browsers will strip this when displaying the textbox and
submitting the form, but some of our tests need updating to account for
this.

The error message for when you don’t choose an option from some radio
buttons has now changed. Rather than just accepting WTForms’ new
message, this commit makes the error messages like the examples from
the Design System<sup>3</sup>. By default it will say ‘Select an
option’, but by passing in an extra parameter (`thing`) it can be
customised to be more specific, for example ‘Select a type of
organisation’.

***

1. https://github.com/wtforms/wtforms/pull/429
2. https://github.com/wtforms/wtforms/issues/238
3. https://design-system.service.gov.uk/components/radios/#error-messages
2020-04-23 12:57:10 +01:00
Chris Hill-Scott
8faffad508 Pin WTForms to current version
Version 2.3.0 contains a number of breaking changes which we can address
later.
2020-04-22 16:40:56 +01:00
Chris Hill-Scott
0d92664fc8 Fix preview of text messages on activity page
Also beefs up the tests a bit so we can be more confident that the right
thing is getting displayed.

Depends on:
- [ ] https://github.com/alphagov/notifications-utils/pull/725
2020-04-22 16:10:40 +01:00
Chris Hill-Scott
202d4cdb5a Merge pull request #3414 from alphagov/moj-bank-holidays
Remove hard-coded bank holidays
2020-04-17 11:04:27 +01:00
Chris Hill-Scott
e68f9c6db9 Remove hard-coded bank holidays
Looks like someone in the Ministry of Justice has made a nice little
Python package of them.

I’ve configured it to use the cached holidays that come with the
package, rather than going to the GOV.UK website every time we start the
app. This should be more reliable, and means we’ll only get updates when
we do a version bump (PyUp should keep an eye on this for us).
2020-04-16 15:06:54 +01:00
Chris Hill-Scott
88734bb74f Bump utils to bring in recent changes to Template classes
The main things we have to account for are:
- `WithSubjectTemplate` has gone
- every template dictionary must have `template_type` set
2020-04-15 17:58:57 +01:00
Leo Hemsted
671d0872c2 fix letter notification status around UTC/BST
timezones grr blah blah blah
2020-04-14 09:52:13 +01:00
Chris Hill-Scott
26f702ebce Refactor to use PostalAddress helper from utils
Since we’re doing normalisation and line-count-checking of addresses in
multiple places it makes sense for that code to be shared. Which is
what happened here:
https://github.com/alphagov/notifications-utils/pull/713

This commit refactors the admin code to make use of the new utils code.

Note about placeholders:
- they now go into the session as `address_line_1` instead of `address
  line 1` because this is the format the API uses, so should be
  considered canonical
- they are now fetched from the session in a way that isn’t sensitive
  to case or underscores (using the `Columns` class)
- the API doesn’t care about case or underscores vs spaces in
  placeholder names because it’s checking an instance of `Template` to
  see if all the required placeholders are present (see
  401c8e41d6/app/notifications/process_notifications.py (L40))
2020-04-07 09:00:55 +01:00
Chris Hill-Scott
84e063c901 Merge pull request #3371 from alphagov/flask-login-again
Flask login (but backwards compatible)
2020-04-01 16:14:38 +01:00
pyup-bot
1dc9f0aa5d Update humanize from 1.0.0 to 2.2.0 2020-04-01 14:37:12 +01:00
Chris Hill-Scott
3895794208 Merge branch 'master' into flask-login-again 2020-04-01 14:29:16 +01:00
Chris Hill-Scott
f6a286ca4f Merge pull request #3314 from alphagov/itsdangerous-upgrade
Upgrade itsdangerous
2020-04-01 13:50:49 +01:00
Katie Smith
435081a2a4 Bump utils to 36.9.3 to bring in new version of Bleach 2020-03-31 08:59:45 +01:00
Chris Hill-Scott
0a5f5cfc9c Merge branch 'master' into itsdangerous-upgrade 2020-03-25 16:40:39 +00:00
David McDonald
39fe27be39 Pull in version of utils that validates postcodes for CSVs
This will mean that a user can not send a CSV for letters with invalid
postcodes and must fix their data.

See https://github.com/alphagov/notifications-utils/pull/704
2020-03-18 12:02:31 +00:00
Leo Hemsted
85f159a25f upgrade flask_login to 0.5.0
flask_login sets a bunch of variables in the session object. We only use
one of them, `user_id`. We set that to the user id from the database,
and refer to it all over the place.

However, in flask_login 0.5.0 they prefix this with an underscore to
prevent people accidentally overwriting it etc. So when a user logs in
we need to make sure that we set user_id manually so we can still use
it.

flask_login sets a bunch of variables on the `flask.session` object.
However, this session object isn't the one that gets passed in to the
request context by flask - that one can only be modified outside of
requests from within the session_transaction context manager (see [1]).
So, flask_login populates the normal session and then we need to copy
all of those values across.

We didn't need to do this previously because we already set the
`user_id` value on line 20 of tests/__init__.py, but now that
flask_login is looking for `_user_id` instead we need to do this
properly.

[1] https://flask.palletsprojects.com/en/1.1.x/testing/#accessing-and-modifying-sessions
2020-03-13 15:16:04 +00:00
Leo Hemsted
5535db273c Revert "upgrade flask_login to 0.5.0" 2020-03-09 16:48:27 +00:00
Leo Hemsted
e4cd77a645 upgrade flask_login to 0.5.0
flask_login sets a bunch of variables in the session object. We only use
one of them, `user_id`. We set that to the user id from the database,
and refer to it all over the place.

However, in flask_login 0.5.0 they prefix this with an underscore to
prevent people accidentally overwriting it etc. So when a user logs in
we need to make sure that we set user_id manually so we can still use
it.

flask_login sets a bunch of variables on the `flask.session` object.
However, this session object isn't the one that gets passed in to the
request context by flask - that one can only be modified outside of
requests from within the session_transaction context manager (see [1]).
So, flask_login populates the normal session and then we need to copy
all of those values across.

We didn't need to do this previously because we already set the
`user_id` value on line 20 of tests/__init__.py, but now that
flask_login is looking for `_user_id` instead we need to do this
properly.

[1] https://flask.palletsprojects.com/en/1.1.x/testing/#accessing-and-modifying-sessions
2020-03-09 12:04:17 +00:00
Rebecca Law
ef3a4c860b Update notifications-utils library.
The SMS character count validation has been updated to exclude the service name when validating the message.
The upload CSV was the only place we were doing this.

Still to come: update the API to use the same method from the SMSTemplate class to check the message lenghth.
2020-03-04 10:52:17 +00:00