Commit Graph

4146 Commits

Author SHA1 Message Date
Chris Hill-Scott
1e2608d2e0 Refactor settings page to use service model
There’s a lot of code in service settings which:
- talks to the API directly through the clients
- passes that information through to the Jinja template

By encapsulating this logic in the service model:
- the Jinja template can access the data directly
- the logic can be reused across multiple methods
2018-10-30 15:07:52 +00:00
Chris Hill-Scott
526f2d7900 Use service model for the copy page
The view here is rebuilding a pseudo-service object. Now that service
objects have templates it’s cleaner to use the actual service object.

Requires a small change to the `templates_by_type` method so that it can
filter by one or many template types (a user should be able to copy any
template whose type is enabled for their service, and the service
they’re copying from).
2018-10-30 15:05:47 +00:00
Chris Hill-Scott
7d57c73411 Import clients from own files, not from app.py
Being able to import things at the top level is much cleaner.
2018-10-30 15:03:42 +00:00
Chris Hill-Scott
e04b2b5631 Split models to prevent circular imports
This commit is the first step to disentangling the models from the API
clients. With the models in the same folder as the API clients it makes
it hard to import the API clients within the model without getting a
circular import.

After this commit the user API clients still has this problem, but at
least the service API client doesn’t.
2018-10-30 15:01:36 +00:00
Chris Hill-Scott
9e798506c5 Initialise clients outside the app
This avoids the annoying problem where you can’t import a client unless
the app has already been initialised.
2018-10-30 14:59:24 +00:00
Chris Hill-Scott
2bf2103cce Re-sort order in which clients are initialised
This separates the non-API clients from the API clients.
2018-10-30 14:57:16 +00:00
Chris Hill-Scott
e1197c54a5 Don’t allow indexing on service model
Making people use a property is a sure way to make sure they’re spelling
the name of the property correctly, and allows us to easily swap out
properties that call through to the underlying JSON, and properties
which are implemented as methods.
2018-10-30 14:55:01 +00:00
Chris Hill-Scott
780b9bb715 Use cached property from werkzeug.utils
This means we can have a method on the service model which hits the API
(or Redis) but can be called multiple times (within the context of a
request) without making multiple network requests.

It does this by storing the results of the method on the object’s
internal `__dict__` the first time the method is called.
2018-10-30 14:55:01 +00:00
Chris Hill-Scott
b48305c50d Don’t have service model inherit from dict
Inheriting from `dict` has some unexpected side effects that don’t
happen with plain object. The one we want to avoid right now is that
a dict doesn’t seem to implement `__dict__` in a normal way, which
is required by `werkzeug.utils.cached_property`.
2018-10-30 14:55:00 +00:00
Chris Hill-Scott
1e6b79a546 Put templates on service model
We do a lot of logic around choosing which templates to show. This logic
is all inside one view method.

It makes it cleaner to break this logic up into functions. But this
would mean passing around variables from one function to another.
Putting these methods onto a class (the service model) means that
there’s a place to store this data (rather than having to pass it around
a lot).

Making this code more manageable is important so that when we have
templates and folders it’s easy to encapsulate the logic around
combining the two.
2018-10-30 14:55:00 +00:00
Chris Hill-Scott
d69e8b50cd Only initialised service model once per request
`_get_current_service` is a function which gets called every time
`current_service` is referenced in a view method or Jinja template.

Because the service model was getting initialised inside this function
it was being reconstructed many times in one request. On the service
settings page, for example, it was getting initialised 43 times, adding
about 200ms to the response time.

This commit moves its initialisation to the point where we’re getting
the data from the API, which only happens once per request.
2018-10-30 14:55:00 +00:00
Chris Hill-Scott
d5d1f7394d Remove old API key and service ID combo
Once all our users have upgraded to the latest clients they won’t need
this. The latest clients only use the combined key and service ID.

Discuss: when can we safely remove it?
2018-10-30 10:01:37 +00:00
Katie Smith
3431996860 Add required argument to function 2018-10-30 07:56:27 +00:00
Chris Hill-Scott
f1a9761ea1 Show letters that fail validation as cancelled
At the moment we show precompiled letters that have failed the
validation as having been sent. This is confusing.

We should communicate it as having been cancelled (rather than failed),
with the implication being that Notify has come along and cancelled the
letter before printing it. I think this is conceptually what makes the
most sense.

From the user’s point of view any letters that show up as cancelled
probably need to be fixed and resent, so it makes sense to group them
with the same name.
2018-10-29 12:13:33 +00:00
Chris Hill-Scott
bbb4b87cac Show count of cancelled letters on dashboard 2018-10-29 11:51:43 +00:00
Chris Hill-Scott
c01d761a3c Show if a letter has been cancelled
At the moment we are manually cancelling letters for people when they
ask us to. Once’s we’ve done this there is no indication that it’s
happened except for the date going red on the list of letters.

This commit adds some error messaging and styling to show when a letter
is cancelled.

Letting people cancel their own letters will be a future enhancement.
2018-10-29 11:51:41 +00:00
Katie Smith
ae79a3ac75 Add platform admin button for edit_folders permission
Added a platform admin button to allow / remove the edit_folders
permission for a service.
2018-10-25 12:09:26 +01:00
Katie Smith
af29ee7ff1 Merge pull request #2407 from alphagov/stop-sending-dvla-org-id
Stop passing dvla_org_id to template preview
2018-10-24 16:28:58 +01:00
Katie Smith
a489e7a26b Stop passing dvla_org_id to template preview
We were passing both dvla_org_id and filename to template-preview
temporarily while we switch to only using filename. Now that
template-preview is set up to use filename, we can stop sending the
dvla_org_id too.
2018-10-23 16:21:18 +01:00
Pete Herlihy
285d91f5bc Updated service count to 410 and 127 orgs 2018-10-23 15:43:59 +01:00
Katie Smith
e100a0f218 Merge pull request #2394 from alphagov/send-letter-filename-to-template-preview
Pass letter logo filename to template preview
2018-10-19 10:58:08 +01:00
Chris Hill-Scott
86898903c5 Merge pull request #2393 from alphagov/rushmoor.gov.uk
Make agreement signed by Rushmoor borough council
2018-10-18 15:12:30 +01:00
Katie Smith
0362265cb6 Pass letter logo filename to template preview
We now pass through `filename` to the Template Preview `/preview.<filetype>'
endpoint in addition to the `dvla_org_id`. Template Preview will be
changed to only use `filename`, and once this has been done, we can change
the code to only pass through `dvla_org_id` instead of passing through
both pieces of information.
2018-10-17 15:17:11 +01:00
Chris Hill-Scott
897a3f6407 Make agreement signed by Rushmoor borough council 2018-10-17 15:05:35 +01:00
fidejoseph
4d9a476d04 Update email_domains.yml
added bi.team
2018-10-17 10:42:38 +01:00
Chris Hill-Scott
584ae89394 Mark agreement signed 2018-10-16 16:52:22 +01:00
Chris Hill-Scott
975aa5fe86 Add Animal & Plant Health Agency 2018-10-16 16:28:04 +01:00
Chris Hill-Scott
e7278c7811 Mark agreement sign by Maidstone council 2018-10-15 15:20:50 +01:00
Leo Hemsted
c898284c3b fix pdf download link trying to request a page count
It doesn't make sense to get a pdf for only one page - the template
preview app just returns a 400 if you try. So we shouldn't try!
2018-10-15 14:32:10 +01:00
Chris Hill-Scott
6154495c1b Merge pull request #2371 from alphagov/fix-email-preview
Allow coloured branding without logo in preview
2018-10-11 15:30:32 +01:00
Chris Hill-Scott
8e582fbdc9 Merge pull request #2375 from alphagov/resend-layout
Make resend email page consistent
2018-10-11 15:29:50 +01:00
Chris Hill-Scott
f41a49dcfb Resolve aliases for Vale of Glamorgan Council domain 2018-10-11 14:12:07 +01:00
Pete Herlihy
b0171498ea Updated for Vale of Glamorgan 2018-10-11 12:21:16 +01:00
Chris Hill-Scott
86b9ca6381 Make resend email page consistent
Its grid and copy weren’t consistent with the original page you see when you’ve first been sent the confirmation email.
2018-10-11 11:59:33 +01:00
Chris Hill-Scott
6b6a19eb2d Merge pull request #2369 from alphagov/align-pending
Format ‘pending’ messages the same as ‘sending’
2018-10-11 11:21:56 +01:00
Chris Hill-Scott
0d0d95a75a Format ‘pending’ messages the same as ‘sending’
For reasons I don’t understand some of our text messages get marked as `pending`. Since we don’t account for this in the front end they don’t get displayed quite right (the vertical position of the text is too high). This commit adds the pending `state` to the `if` statement so the text is properly aligned.
2018-10-11 11:08:32 +01:00
Tom Byers
e92230a0ef Allow coloured branding without logo in preview
Coloured brandings can just be a coloured
background with text. At the moment the /_email
preview page assumes a logo image will be part of
a brand so looks broken.
2018-10-11 10:50:42 +01:00
Chris Hill-Scott
9bc0b6ecd4 Merge pull request #2370 from alphagov/service-count
Up to 393 services and 123 organisations
2018-10-11 10:25:04 +01:00
Chris Hill-Scott
ae7e8d5659 Merge pull request #2368 from alphagov/vca.gov.uk
Add Vehicle Certification Agency to domains list
2018-10-11 10:24:56 +01:00
Leo Hemsted
2bd5ec6ec3 Merge pull request #2351 from alphagov/precompiled_validation_preview
Preview the validation of precompiled letters
2018-10-10 14:58:23 +01:00
Pete Herlihy
9a8b079413 Up to 393 services and 123 organisations 2018-10-10 14:11:59 +01:00
Chris Hill-Scott
095dd617cd Got the answers 2018-10-10 10:33:07 +01:00
Chris Hill-Scott
b580d2e29e Add olev domains 2018-10-10 09:59:53 +01:00
Chris Hill-Scott
672709ae86 Add Vehicle Certification Agency to domains list
Need to find out where they sit…

https://www.gov.uk/government/organisations/vehicle-certification-agency
2018-10-10 09:24:13 +01:00
Pete Herlihy
acec8922c6 Update pricing for 1 October onwards - adding first class rates 2018-10-09 14:37:07 +01:00
Chris Hill-Scott
9ef75a2a4c Mark agreement signed by DCMS 2018-10-09 09:59:57 +01:00
Chris Hill-Scott
5c5680b17d Mark agreement signed by Brighton and Hove 2018-10-05 16:54:22 +01:00
Pea Tyczynska
291b2cf2ba Improve error handling for precompiled validation preview 2018-10-05 16:27:57 +01:00
Pea Tyczynska
e6e363ba3f Add antivirus scan to letter validation preview view 2018-10-05 16:27:57 +01:00
Pea Tyczynska
a61393a68e Test letter validation preview flow 2018-10-05 15:46:44 +01:00