Commit Graph

6573 Commits

Author SHA1 Message Date
Chris Hill-Scott
c41d0d5a1c Merge pull request #2549 from alphagov/cdn-images
Serve images from the CDN
2018-11-29 15:07:50 +00:00
Chris Hill-Scott
643dca0071 Use asset fingerprinter to serve images
This means we can cache them forever, and only invalidate the cache
when the image changes.
2018-11-29 14:31:31 +00:00
Chris Hill-Scott
8653430669 Merge pull request #2548 from alphagov/fix-app-var
Expose `application` as a variable
2018-11-29 14:10:01 +00:00
Chris Hill-Scott
5bf6bdcd20 Serve images from the CDN
Because it should be quicker than serving them from our app directly.
2018-11-29 14:09:44 +00:00
Chris Hill-Scott
58d3d70a7c Expose application as a variable
This is what Gunicorn is looking for when it’s running the app.

Renaming this variable to `app` has caused the app to break once
deployed on PaaS.

This commit also renames `app` to `flask_app` to make it clear which
app is wrapping which other app.
2018-11-29 14:02:20 +00:00
Chris Hill-Scott
e346bfeb9e Merge pull request #2546 from alphagov/make-whitenoise-audible
Make Whitenoise serve static assets
2018-11-29 13:35:49 +00:00
Chris Hill-Scott
d47e0482d4 Tell browsers not to re-fetch static assets
Since we version our asset filenames there’s no need for a browser to
ever fetch the same file twice. It should always cache fetch from its
own cache.

The accepted way to effect this behaviour is using the expires header,
which is what this argument to `WhiteNoise` does.
2018-11-29 13:22:52 +00:00
Chris Hill-Scott
d58c04d974 Make Whitenoise serve static assets
Currently it’s not configured properly, so isn’t having any effect.
This change makes it wrap the Flask app, so it intercepts any requests
for static content.

Follows the pattern documented in http://whitenoise.evans.io/en/stable/flask.html#enable-whitenoise
2018-11-29 13:22:52 +00:00
Chris Hill-Scott
c3cc4f4ded Merge pull request #2547 from alphagov/fix-asset-fingerprinter-path
Fix asset path in asset fingeprinter
2018-11-29 13:22:23 +00:00
Chris Hill-Scott
dd711f51b3 Fix asset path in asset fingeprinter
The asset fingerprinter was hard coded to always point to `/static`.

It needs to change depending on which environment the app is running
in.
2018-11-29 13:14:52 +00:00
Chris Hill-Scott
9541c02309 Merge pull request #2545 from alphagov/fix-csp-cdn
Fix content security policy for the CDN
2018-11-29 12:25:50 +00:00
Chris Hill-Scott
4e53cafd46 Use NOTIFY_ENVIRONMENT to test if running locally
This matches what we tell people, in the README, to put in their local
environment.sh

It doesn’t matter what Jenkins sets this to, as long as it’s not
`'development'`. We think Jenkins isn’t setting it at all (in which
case the value will be `undefined`)
2018-11-29 12:18:00 +00:00
Chris Hill-Scott
23cc182b6f Get config from current app 2018-11-29 12:07:48 +00:00
Chris Hill-Scott
bc6b9c7af7 Use named arguments for clearer string formatting
Helps when the string is long.

Also helps disambiguate between the CDN domain used for the logos and
those for CSS/JS.
2018-11-29 11:56:01 +00:00
Chris Hill-Scott
fe6610c221 Fix content security policy for the CDN
The CDN URLs aren’t in included in the content security policy. So
browsers will refuse to load them.

This commit:
- adds each of the CDN URLs to the
- only prepend URLs in CSS files with `/static/` if we’re running
  locally (because the CDN URLs are like `static.example.com` not
  `example.com/static`)
2018-11-29 11:29:52 +00:00
Chris Hill-Scott
74459b2f2a Merge pull request #2542 from alphagov/static-domain
Use static domains for static assets
2018-11-29 09:58:38 +00:00
Leo Hemsted
e15c698a81 Merge pull request #2517 from alphagov/new-template-button
html for templates move/new flow
2018-11-28 16:24:16 +00:00
Chris Hill-Scott
b1c0778bde Since moving to putting the admin app on Cloudfront anything on the
`www.notifications.service.gov.uk` domain is:
- not gzipped

The PaaS proxy used to GZip and set headers for anything served from a
path starting with `/static/`:
76dd511a8a/ansible/roles/paas-proxy/templates/admin.conf.j2 (L53-L64)

Anything served from `static.notifications.service.gov.uk` is:
- GZipped
- and as a bonus, cached by Cloudfront where possible (meaning the
requests won’t ever hit our app)

This commit moves to serving static asset from `/static/` to
`static.notifications.service.gov.uk`, to get the above listed benefits.

***

We could do even better by setting long cache expiry headers on the static subdomain (currently they’re only set to cache for 60 seconds). But that’s out of scope for this commit.
2018-11-28 15:50:21 +00:00
Leo Hemsted
1bb7e98722 add fieldsets to template/folder form and update docstrings
also remove erroneous pytest.ini cfg and reset button
2018-11-28 14:14:20 +00:00
Leo Hemsted
d07de58cd9 split out new folder into two separate forms
move_to_new_folder and add_new_folder are now two separate html fields
and form items - so that we can more easily manipulate them on the
front end
2018-11-28 14:14:20 +00:00
Leo Hemsted
6743bd11fa moved existing template folder tests into test_template_folders
also refactored slightly to work with new html, and separate succesful
and bad-permissions test cases
2018-11-28 14:14:20 +00:00
Leo Hemsted
690585c017 move add new folder and move to folder into one dialog box
this lets us combine the two actions to create "Move to a new folder".
If the user hits enter rather than clicking a button, there is a hidden
submit button that (for now) prevents them from taking any action.
A future commit will try and understand what the user might be doing
based on which fields are populated/selected.
2018-11-28 14:14:20 +00:00
Leo Hemsted
9dec9ed626 add new folder from the choose template page 2018-11-28 14:14:20 +00:00
Chris Hill-Scott
b872ba21a7 Merge pull request #2540 from alphagov/socialworkengland.org.uk
Add Social Work England to list of email domains
2018-11-28 10:02:35 +00:00
Chris Hill-Scott
ad4bc57aa6 Add Social Work England to list of email domains
Social Work England will be the new, specialist regulator for social workers in England.

https://www.gov.uk/government/publications/social-work-england-secondary-legislation

https://www.socialworkengland.org.uk
2018-11-28 09:57:38 +00:00
Chris Hill-Scott
e5f22a3fc2 Merge pull request #2520 from alphagov/pyup-update-whitenoise-4.1.1-to-4.1.2
Update whitenoise to 4.1.2
2018-11-27 10:22:56 +00:00
Chris Hill-Scott
d03b3b3d67 Merge pull request #2537 from alphagov/pyup-update-pyexcel-ods3-0.5.2-to-0.5.3
Update pyexcel-ods3 to 0.5.3
2018-11-27 10:15:26 +00:00
Chris Hill-Scott
dfc3821e96 Merge pull request #2536 from alphagov/pyup-update-pyexcel-io-0.5.9.1-to-0.5.10
Update pyexcel-io to 0.5.10
2018-11-27 10:15:17 +00:00
Chris Hill-Scott
9a589ff98b Merge branch 'master' into pyup-update-whitenoise-4.1.1-to-4.1.2 2018-11-27 10:09:31 +00:00
Chris Hill-Scott
ab9273b215 Freeze requirements 2018-11-27 10:08:26 +00:00
Chris Hill-Scott
98822638d7 Freeze requirements 2018-11-27 09:56:57 +00:00
pyup-bot
ff3be89b8e Update pyexcel-ods3 from 0.5.2 to 0.5.3 2018-11-27 08:03:16 +00:00
pyup-bot
9c74a935b9 Update pyexcel-io from 0.5.9.1 to 0.5.10 2018-11-27 08:03:12 +00:00
Chris Hill-Scott
0000ca6629 Merge pull request #2535 from alphagov/launch-first-class
Launch first class postage feature
2018-11-26 16:33:21 +00:00
Chris Hill-Scott
d5c4c7590c Merge pull request #2531 from alphagov/search-within-folders
Make template search work across folders
2018-11-26 16:30:54 +00:00
Chris Hill-Scott
84a3c80eb4 Launch first class postage feature
This commit makes it available to everyone. Available just means they
can select 1st class for all their letters, if they want it.
2018-11-26 15:53:14 +00:00
Katie Smith
6e56a4d517 Merge pull request #2533 from alphagov/bump-utils-3.7.0
Bump notifications-utils to 30.7.0
2018-11-26 14:57:50 +00:00
Katie Smith
c48f54aba4 Bump notifications-utils to 30.7.0
Bumped the notifications-utils version. The `gmt_timezones` function in
this repo and the `utc_string_to_aware_gmt_datetime` in
notifications-utils are the same, so have updated the code to always use
the version in utils.
2018-11-26 14:43:42 +00:00
Chris Hill-Scott
7d20846d94 Render selected links with box shadow not outline
Because there’s a mystery 2px gap between the outline and the element in
Firefox.
2018-11-26 11:33:27 +00:00
Chris Hill-Scott
adcd699712 Maintain full width for items without a path 2018-11-26 10:56:48 +00:00
Chris Hill-Scott
ee991d0142 Allow any sub-items to be moved from a folder
Since you can now see them when searching you should also be able to
select and move them. Which means that they needed to be included in
the `Form`’s list of possible choices of things to move.
2018-11-23 16:29:21 +00:00
Chris Hill-Scott
cdb03d1eeb Only live search on template or folder name
If you have a folder structure like this:

> FA / FB / FC

and you search for ‘FA’, it’s very noisy to see:

> FA / FB
> FA / FB / T1
> FA / FB / T2
> FA / FB / FC
> FA / FB / FC / T3
> …

It’s clearer to just show:

> FA / FB

This also has the benefit of, if you type ‘template’ (for example) you
don’t get every item any more, because it’s only looking at the name of
the thing. It used to look at the entire description, ie:

> A / B / C / Example
> Text message template

Now it only searches on the name:

> A / B / C / *Example*
> Text message template
2018-11-23 14:39:45 +00:00
Chris Hill-Scott
ecdd605bca Allow wrapping within folder/template names
It takes up a lot of vertical space if folders and templates can only
break on the path separator (the `/`).
2018-11-23 14:38:47 +00:00
Chris Hill-Scott
d7e6e6ae90 Make live search restore items to default state
At the moment live search works by either setting something to hidden
or displayed. When the search term is empty, it sets everything to
visible.

This doesn’t work with folders because some of them should be hidden by
default (the ones not at the current level).

We can account for this special case (empty search term) by removing
the `display` CSS attribute when the search term is empty. This means
that each item’s visibility will be controlled by whatever is set in the
CSS file. Using jQuery Setting a property to `''` removes it.
2018-11-23 14:35:58 +00:00
Chris Hill-Scott
28ef6910a3 Hide templates and folders not at current level
Things in subfolders need to be in the page so we can search for them.
But the default view should be only the things are the current level.
So we can use CSS to hide items that are below the current level.
2018-11-23 14:34:25 +00:00
Chris Hill-Scott
148492a635 Put all nested items on page
So that the live search can filter things, they need to be on the page
when it loads. We want to make search work across folders, so all the
things in subfolders need to be in the page.

They also need the full path appending to them, so that you can tell
which ones are in which folders.

This won’t show items that are in a folder above the one you’re
currently in – my reckon is that when you’re narrowing down by clicking
into a folder that you only want to search for things in that folder.
2018-11-23 14:31:05 +00:00
Chris Hill-Scott
82d8207612 Refactor template list logic into one place
The Jinja template for the ‘choose templates’ page is now pulling in
data from a lot of diparate places in order to work out what to show. As
we add more logic about what to show (in order to make the live search
work) it’s going to get harder to have all this logic in the Jinja
template.

This commit refactors it back into Python where we have more language
features for managing complex logic.

It’s a bit weird to call this file a model, in that it’s dealing with
some presentational logic, rather than just data. Conceptually it’s more
like a view model[1].

1. https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel
2018-11-23 14:00:40 +00:00
Chris Hill-Scott
1cc2a529d5 Merge pull request #2530 from alphagov/plymouth.gov.uk
Mark agreement signed by Plymouth City Council
2018-11-23 12:58:25 +00:00
Chris Hill-Scott
d8a0a192c3 Mark agreement signed by Plymouth City Council 2018-11-22 17:24:00 +00:00
Chris Hill-Scott
5df1978c62 Merge pull request #2529 from alphagov/download-pdf-footer
Put download PDF link in the sticky footer on the sent letter page
2018-11-22 13:23:10 +00:00