Commit Graph

75 Commits

Author SHA1 Message Date
Leo Hemsted
ad18c5fe1e Update requirements.txt 2016-08-17 10:09:04 +01:00
Chris Hill-Scott
30261cf385 Fix newlines in HTML emails
This problem was masked because the email message component was also
replacing newlines with `<br>`s.

Implements:
- [ ] https://github.com/alphagov/notifications-utils/pull/60
2016-08-01 14:29:08 +01:00
Chris Hill-Scott
06d6718035 Update to correct version
Got mixed up on https://github.com/alphagov/notifications-admin/pull/816
2016-08-01 11:15:46 +01:00
Chris Hill-Scott
7d99308d4e Fix Markdown/HTML email oddities
Depends on:
- [ ] https://github.com/alphagov/notifications-utils/pull/59
2016-08-01 10:38:34 +01:00
Chris Hill-Scott
6ce38d5500 Update utils for Markdown parsing + subbranding
Markdown parsing (will be active but isn’t documented):
- [x] https://github.com/alphagov/notifications-utils/pull/54

Email sub branding (not used yet):
- [x] https://github.com/alphagov/notifications-utils/pull/55
2016-07-22 10:51:30 +01:00
Chris Hill-Scott
9a5fbca707 Make ‘Available for…’ text on job page relative
When we say ‘delivery information is available for 7 days’ you have to
infer _when_ the seven days starts. When you come back to the page it
still says ‘available for 7 days’ even if you only have a day left to
download it. This is confusing.

This commit changes the text to be relative to now, eg ‘available for 7
days’, ‘available for 1 day’.

The date is counted to midnight on the seventh day, which is when the
data is actually deleted.
2016-07-19 15:25:17 +01:00
Chris Hill-Scott
93f7390f65 Upgrade utils to fix bleach version issue
Brings in:
- [x] https://github.com/alphagov/notifications-utils/pull/53
2016-07-15 13:42:43 +01:00
Chris Hill-Scott
c006b8748c Add conditional placeholder detection
Implements: https://github.com/alphagov/notifications-utils/pull/51

Copies the same regex.

Adds some CSS to display conditional placeholders differently to
normal placeholders (vertical rather that curved right-hand edge).
2016-07-12 17:11:52 +01:00
Chris Hill-Scott
9f91694c71 Add a ‘private’ preview email template endpoint
This will make working on the email template easier.

Includes examples of features like lists, headings, blockquotes, etc.
2016-07-12 16:46:46 +01:00
Chris Hill-Scott
51f6450e5d Make placeholder look more editable
Depends on:
- [ ] https://github.com/alphagov/notifications-utils/pull/40

In research we’ve noticed two problems with the appearance of
placeholders:

1. We are inconsistent about when we display the ((double brackets)).
   Sometimes we show them, sometimes we don’t. This doesn’t help user’s
   understanding about where the column names in their CSV file come
   from, or how they can edit the template to fix any errors.

2. Because they look so different from normal `<textarea>` text, it’s
   not immediately obvious that they can be edited just like normal
   text. They look more like something that can be dragged/inserted.

So this commit:

1. Makes the brackets always-visible.

2. Makes the text colour of the placeholder `$text-colour`, and only
   highlights the name of the ‘variable’, not the brackets themselves.
2016-06-06 12:59:40 +01:00
Chris Hill-Scott
2ff6cf049f Change order of errors for bad CSV files
This commit rearranges the CSV errors (again) to make them geared towards
teaching you how to match placeholders to the column headers.

So the order of errors now is:

1. No phone number/email column
2. Column headers don’t match placeholders
3. Missing or bad data
4. Trial mode
5. Daily limit reached

This depends on:
- [x] https://github.com/alphagov/notifications-utils/pull/39 for 1.
2016-06-03 16:26:58 +01:00
Chris Hill-Scott
3ac76192d0 Warn users a template change will break things
When a user adds or removes placeholders in their template we should consider
this a ‘breaking change’ and warn them accordingly.

Implementing this mostly relies on using
https://github.com/alphagov/notifications-utils/pull/37

Temporarily storing the new template until the user confirms that they want to
make the changes in done using hidden fields. This is a bit hacky, but the
complexity of making sessions interact with WTForms was just too much to handle.

This commit also changes the example spreadsheet that we show on this page to
look more like a spreadsheet.
2016-05-31 17:07:05 +01:00
Chris Hill-Scott
7de42a31e6 Make ‘Too many recipients’ error lower priority
This commit makes two main changes to what happens when a user is
in trial mode and they upload some email addresses belonging to
other people.

1. Add a specific banner error telling the user about trial mode

2. Make this error higher priority, eg it will show up before the
   error about having too many recipients in your file

This means making some changes to the tests so that the example CSV
files include the user’s phone number, then making them invalid by
omitting data required by the templates.

Depends on: https://github.com/alphagov/notifications-utils/pull/34
2016-05-23 10:22:13 +01:00
minglis
95065c436c Merge pull request #578 from alphagov/timezones
Convert timezones using pytz.
2016-05-17 14:52:36 +01:00
Martyn Inglis
e54c309594 Convert timezones using pytz. 2016-05-17 14:00:40 +01:00
Chris Hill-Scott
7703b87aa7 Merge pull request #574 from alphagov/add-lxml-to-req
Add lxml 3.6.0 to requirements.
2016-05-17 13:54:19 +01:00
Chris Hill-Scott
3944c67a0a Handle CSV files with blank column headers
Implements https://github.com/alphagov/notifications-utils/pull/32
2016-05-17 13:25:54 +01:00
Rebecca Law
93c4f37d08 Add lxml 3.6.0 to requirements. 2016-05-17 08:48:17 +01:00
Chris Hill-Scott
1409ca36ca Accept common spreadsheet formats, not just CSV
We require users to export their spreadsheets as CSV files before
uploading them. But this seems like the sort of thing a computer should
be able to do.

So this commit adds a wrapper class which:
- takes a the uploaded file
- returns it in a normalised format, or reads it using pyexcel[1]
- gives the data back in CSV format

This allows us to accept `.csv`, `.xlsx`, `.xls` (97 and 95), `.ods`,
`.xlsm` and `.tsv` files. We can upload the resultant CSV just like
normal, and process it for errors as before.

Testing
---

To test this I’ve added a selection of common spreadsheet files as test
data. They all contain the same data, so the tests look to see that the
resultant CSV output is the same for each.

UI changes
---

This commit doesn’t change the UI, apart from to give a different error
message if a user uploads a file type that we still don’t understand.

I intend to do this as a separate pull request, in order to fulfil
https://www.pivotaltracker.com/story/show/119371637
2016-05-15 22:10:58 +01:00
Martyn Inglis
914a546ef5 Bumnped version of utils 2016-05-12 16:34:46 +01:00
Martyn Inglis
af59ecb379 Record start of request so we can time all requests 2016-05-12 13:56:14 +01:00
Rebecca Law
4292aec4b7 Update python client to version 1.0.0 2016-05-04 16:17:46 +01:00
Adam Shimali
09117e5eeb Updated flask-login to version 0.3.2 2016-05-04 14:06:14 +01:00
Chris Hill-Scott
e385872893 Ignore case and spacing in CSV column headers
Implements:
https://github.com/alphagov/notifications-utils/pull/28
2016-05-04 11:02:27 +01:00
NIcholas Staples
96297d2989 Merge pull request #522 from alphagov/sms_msg_limit
Sms msg limit
2016-04-29 12:29:45 +01:00
Nicholas Staples
fbf30129b0 Update app to the latest notifications_utils. 2016-04-28 14:02:51 +01:00
Adam Shimali
7b611faee9 Missing requirement 2016-04-27 16:45:50 +01:00
Nicholas Staples
337eeb60d1 Update requirements version. 2016-04-27 12:52:25 +01:00
Rebecca Law
009c117452 Upgrade requirements.
With the upgrade of pep8 to 1.7.0 module imports are required to be at the top of the file,
meaning I had to add a noqa line to some of the init files. Are those init files wrong or is pep8 too strict.
2016-04-21 09:30:33 +01:00
Rebecca Law
2afbbd6423 Removed unused requirements and modules. 2016-04-21 09:11:00 +01:00
Chris Hill-Scott
57ad64fae6 Get the docs rendering in the app
This commit replaces the old _API Documentation_ page with the Markdown
version that Catherine has been working on.

I’ve checked that there’s nothing obviously wrong or placeholder-y still
in there, so I think we’re good to go.
2016-04-15 12:14:51 +01:00
Rebecca Law
1fe5ae0371 This pull request removes the need for the req and pay in the claims JWT.
Use the new version of the notifications-python-client. This version no longer adds the req and pay to the claims of the jwt.

The change is backward compatible so an older client that sends a JWT with the extra claims will pass authentication.
Once all the clients have been updated to not include the extra claims some updates to exclude them from the method signatures will happen as well.

The documentation has been updated to reflect this change.

https://www.pivotaltracker.com/story/show/116971293
2016-04-15 11:04:35 +01:00
Chris Hill-Scott
b1d0547bb2 Merge pull request #447 from alphagov/remove-human-timestamps
Remove human-friendly timestamps from activity page
2016-04-14 14:10:52 +01:00
Chris Hill-Scott
cadc700712 Remove human-friendly timestamps from activity page
This fix introduced by e6490e1 did not fix anything.

So lets remove the ‘3 days ago’ thing completely and just say the date
and time instead.
2016-04-14 13:47:53 +01:00
Chris Hill-Scott
b157da24cb Merge pull request #445 from alphagov/different-human-timestamp-module
Use a different module for doing nice timestamps
2016-04-14 13:00:20 +01:00
Nicholas Staples
3865c722fc Updated notifications_utils version and associated code. Added email subject formatting for placeholders. 2016-04-14 12:00:55 +01:00
Chris Hill-Scott
e6490e18d1 Use a different module for doing nice timestamps
There is a bug in Babel[1] which means that it throws an exception if
it can’t find the locale it wants to use.

This is not a problem when developing locally, because OS X comes with
lots of locales. The AWS machines, however, only have one locale, which
is not the one that Babel is looking for. Hence the ‘Activity’ page
doesn’t work.

This commit changes to using Humanize[2] instead, which is much less
vast and hopefully less hungry in its requirements.

That’s a morning we won’t get back…

1. https://github.com/python-babel/babel/issues/137
2. https://pypi.python.org/pypi/humanize
2016-04-14 11:39:43 +01:00
Chris Hill-Scott
1a6bb37171 Tidy up the ‘Activity’ table
This table had a lot of columns, which meant that some of them became
very narrow, wrapping the text awkwardly.

This commit groups some of the data into a chunk, which occupies the
first column.
2016-04-13 16:17:09 +01:00
Chris Hill-Scott
2abc336a0c Make phone numbers human readable
- in the example table on the ‘send’ page
- in the example CSV files

Implements: https://github.com/alphagov/notifications-utils/pull/18
2016-04-06 11:31:37 +01:00
Chris Hill-Scott
9327f83411 Fix bug with whitelist
Implements https://github.com/alphagov/notifications-utils/pull/17
2016-04-05 11:59:17 +01:00
Chris Hill-Scott
7a0a81c07c Show error if restricted service uploads real CSV
Implements: https://github.com/alphagov/notifications-utils/pull/16

Also changes a bunch of the mocked phone numbers to be real-looking so
that the tests are checking for the right kind of error.
2016-04-04 17:17:52 +01:00
Chris Hill-Scott
f921a2dcb6 Strip trailing CSV rows, relax phone validation
Implements (and depends on):
- https://github.com/alphagov/notifications-utils/pull/14
- https://github.com/alphagov/notifications-utils/pull/15
2016-03-24 20:34:24 +00:00
Chris Hill-Scott
c92879dba0 Only prefix SMS templates with service name
Implements: https://github.com/alphagov/notifications-utils/pull/13

Fixes: https://www.pivotaltracker.com/story/show/115879891
2016-03-21 11:24:43 +00:00
Chris Hill-Scott
91b4545adc Don’t mix errors with valid rows
Brings in: https://github.com/alphagov/notifications-utils/pull/11

Changes the number of rows shown to be at most 15 (either 15 rows with errors
or 15 valid rows.
2016-03-14 16:53:21 +00:00
Chris Hill-Scott
0a5bf0bc44 Update to utils 2.0.0
…and remove the code from this app that has moved into utils.
2016-03-08 17:18:42 +00:00
NIcholas Staples
f0e0006a7c Merge pull request #213 from alphagov/accept-phone-or-email-column
Accept CSVs with 'email address' or 'phone number'
2016-03-02 11:27:24 +00:00
Chris Hill-Scott
b57ac2f7e5 Accept CSVs with 'email address' or 'phone number'
CSV files currently have ‘to’ as the recipient column. This is changing in
https://github.com/alphagov/notifications-api/pull/109

The admin app also has to validate that the CSV files have the right columns,
because the API expects any CSV that it’s given to have been checked (also we
want things to actually work).

This commit is the minimum code change needed. In the future it should reuse
the same code as the API for processing CSV files. This will need more thinking.
2016-03-02 10:41:35 +00:00
Martyn Inglis
7b5e8061e2 Slight (bad) hack to ensure that the ticks appear on the manage user page
- changes imports for utils from broken version on previous branch
2016-03-01 10:45:13 +00:00
Chris Hill-Scott
2f91848a42 Prefix text messages with service name
Brings in: https://github.com/alphagov/notifications-utils/pull/4
2016-02-26 11:57:13 +00:00
Rebecca Law
d24cea904b Bump the version of notifications-python-client 2016-02-24 16:24:50 +00:00