Commit Graph

358 Commits

Author SHA1 Message Date
bandesz
b148a0a6a0 Add awslogs logging for PaaS 2017-02-16 14:19:37 +00:00
Chris Hill-Scott
4d3a935a1b Bump utils to turn on Markdown links 2017-02-08 17:01:51 +00:00
Chris Hill-Scott
df6c899796 Fix XSS vulnarability with emails
Rolling this into the same PR because it’s just a version bump.

Brings in:
- [ ] https://github.com/alphagov/notifications-utils/pull/113
2017-02-06 12:33:32 +00:00
Chris Hill-Scott
8bb15e7a58 Handle partial letter addresses more gracefully
Brings in:
- [x] https://github.com/alphagov/notifications-utils/pull/108

Specifically, see these tests for detail of what happens when someone
only fills in some of the required/not required lines of an address:
9e6cb14a5c (diff-e5050dea996611c8bdf32cfe6e8214cdR264)
2017-02-06 12:33:32 +00:00
Chris Hill-Scott
fe02567e63 Fix display of placeholders with incomplete CSV
Brings in:
- [ ] https://github.com/alphagov/notifications-utils/pull/111
2017-01-31 13:58:23 +00:00
Chris Hill-Scott
597c6da857 Sanitize HTML in templates using utils
We can no longer trust that the content of templates stored in the
database is safe.

Utils now has code to sanitise the content of templates.

This commit:
- updates utils to bring this code in
- modifies some integration tests to make sure everything is working
  (there are more extensive unit tests in utils)
2017-01-19 16:34:34 +00:00
Chris Hill-Scott
e73629be2e Bump utils
Brings in:
- [ ] https://github.com/alphagov/notifications-utils/pull/107
2017-01-18 14:22:30 +00:00
Leo Hemsted
88b848a4a3 bump utils to 13.1.0
brings in changes to allow logging json to sdout on cloudfoundry boxes
2017-01-17 11:44:42 +00:00
bandesz
10950bb8a6 Run on Paas 2017-01-17 11:44:42 +00:00
Chris Hill-Scott
559433c5d2 Add remaining endpoints for PDFs and PNGs
Right now we can show what a letter template looks like as a PDF or PNG.

This commit completes the work so this is also possible when:

- showing a template with the placeholders replaced
- showing any version of a template

Also removes dependency on `Exception().message`, which was deprecated
in Python 2.6. See
97f82d565f
for full details.
2017-01-04 15:45:59 +00:00
Chris Hill-Scott
b99279afad Add link to Bleach bugtracker
Explains why we’re using forked version of Weasyprint
2016-12-20 13:43:53 +00:00
Chris Hill-Scott
f5f3d8acae Update patched Weasyprint fork to alphagov hosted
Better than it being on my personal Github account.
2016-12-20 13:17:01 +00:00
Chris Hill-Scott
3713bad569 Include content count bug fix
Includes:
- [x] https://github.com/alphagov/notifications-utils/pull/102
2016-12-14 15:51:03 +00:00
Chris Hill-Scott
922a27e74b Use more sensible version number for html5lib
html5lib version numbers look like 0.999, 0.9999, etc.

This was making people unhappy, so they’ve added version numbers like
1.0b1, 1.0b2, etc which map to the numbers with lots of nines.

The equivalent version for 0.9999999 (7 nines) is 1.0b8 😐
2016-12-14 15:02:54 +00:00
Chris Hill-Scott
dc63de0f4e Incorporate breaking utils changes
Brings in:
- [ ] https://github.com/alphagov/notifications-utils/pull/94
2016-12-14 14:32:07 +00:00
Chris Hill-Scott
ae356fc741 Use PDF link renderer to preview letters
Depends on and implements:
- [x] https://github.com/alphagov/notifications-utils/pull/84
- [ ] https://github.com/alphagov/notifications-utils/pull/86
2016-12-13 10:34:19 +00:00
Chris Hill-Scott
43296469d6 Add endpoint for generating an image of a letter
The PDF preview is all good, but it’s hard, finickeity and feels dirty
to embed a PDF in a web page. It’s a more natural thing to embed an
image in a web page.

So this commit adds another endpoint to return an image of a letter
template. It generates this image from the PDF preview, so the stack
looks like:

1. `template.png` (generated in admin)
2. `template.pdf` (generated in admin)
3. HTML preview (generated by a `Renderer` in utils)
4. `Template` instance
5. serialised template from API
6. Template stored in database

The library used to convert the PDF to an image is Wand[1], which binds
to ImageMagick underneath. So in order to get this working locally on a
Mac you will probably need to do:
`brew install imagemagick ghostscript cairo pango`.

To get it working on Ubuntu/EC2 is an exercise left to the reader…

1. http://docs.wand-py.org/en/0.4.4/
2016-12-13 10:34:18 +00:00
Chris Hill-Scott
4f72cc20ef Use patched version of WeasyPrint
Reasons here: 99718c2caf
2016-12-13 10:34:18 +00:00
Chris Hill-Scott
18d11aa013 Move code for rendering messages/templates → utils
Utils is better structured to handle the logic of what thing to show
for what template type, especially now that what we show for different
template types in different contexts has diverged significantly.

See https://github.com/alphagov/notifications-utils/commit/6b39c1a for
an example of this code moving into utils

Depends on and implements:
https://github.com/alphagov/notifications-utils/pull/84

The main reason for doing this is to get Paul’s fix for the misaligned
CSV columns: https://github.com/alphagov/notifications-utils/pull/87
2016-12-05 12:11:54 +00:00
Martyn Inglis
c7549d552e Bumped version of utils 2016-12-01 13:13:48 +00:00
Martyn Inglis
0c9d188ef5 Bumped utils version 2016-12-01 11:34:18 +00:00
Martyn Inglis
655e6892ad Bumps client version 2016-11-30 17:01:02 +00:00
Rebecca Law
d2f943ed2e Update python client to version 3.0.0 from 1.3.0 2016-11-22 15:04:40 +00:00
Chris Hill-Scott
69ad5fe156 Handle multi-column recipients
Implements https://github.com/alphagov/notifications-utils/pull/81

Handles addresses as multiple columns:
- in ‘Send yourself a test’
- in example CSV files
- in validating that a CSV file has recipients (eg at least an ‘address
  line 1’ and ‘postcode’ column)
- when showing the contents of a CSV file

As few UI changes as possible, once we have the thing working end-to-end
we can think about how the UI might need to work differently.
2016-11-14 14:53:06 +00:00
Chris Hill-Scott
c3b580b645 Update utils 2016-11-14 14:29:13 +00:00
Chris Hill-Scott
2c6ab4756f Bump utils
Includes:
- [ ] https://github.com/alphagov/notifications-utils/pull/75
2016-10-31 09:19:53 +00:00
Leo Hemsted
bd07aa97a7 remove monotonic as a dependency
"On Python 3.3 or newer, monotonic will be an alias of time.monotonic from the standard library"
2016-10-19 10:39:22 +01:00
Chris Hill-Scott
a32dcbf8e3 Error if a CSV file contains more than 50,000 rows
We want to limit the number of rows someone can have in a job, because
it gets too slow to process the file otherwise.

This should be the first error that a user sees, because we can’t work
out if there are other errors until they’ve got the file down to a
processable size.

This also means adding a message to say that the file can’t be displayed
if it doesn’t contain any processed rows.

***

https://www.pivotaltracker.com/story/show/129830161
2016-10-16 10:55:19 +01:00
Leo Hemsted
92f2d1fef3 bump utils to 9.0.6
includes a slightly stricter regex
2016-10-14 14:36:34 +01:00
Leo Hemsted
83015b9efb notification-utils 9.0.5
Uses more restrictive email regex to prevent people adding emails with leading quotes, semicolons, etc, that SES rejects and end up as a Technical Failure
2016-10-10 12:13:56 +01:00
Chris Hill-Scott
20fa3d2ea8 Bump utils version
Brings in:
- [x] https://github.com/alphagov/notifications-utils/pull/68
2016-09-14 10:31:00 +01:00
Chris Hill-Scott
fa5e5475e9 Update Python client
Just so that nobody else has to do it.

Implements:
- [x] https://github.com/alphagov/notifications-python-client/pull/29

Which is a breaking change requiring the renaming of method arguments.
2016-09-08 15:55:07 +01:00
Chris Hill-Scott
c745422578 Don’t prefix text messages is sender name is set
Implements:
- [x] alphagov/notifications-utils#66
2016-08-26 14:45:26 +01:00
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