Commit Graph

5780 Commits

Author SHA1 Message Date
Chris Hill-Scott
d93ebd99d3 Refactor history off the service model
Directly referencing the `ModelList` instances will let us more easily
make choices at the view layer about which kinds of events to show, and
is one less layer of indirection to jump through.
2019-10-23 13:08:06 +01:00
Chris Hill-Scott
b2ebaf153a Chunk events by day
Scanning the page is difficult at the moment because it’s hard to tell
how far apart in time events are, and thereby determine which events
might be related.

Grouping the events by day quickly lets users narrow their focus to
a meaningful subset of the events.
2019-10-23 13:06:25 +01:00
Chris Hill-Scott
59b4d60c91 Munge stuff into a consistent event data type
We store our audit history in two ways:

  1. A list of versions of a service
  2. A list of events to do with API keys

In the future there could be auditing data which we want to display that
is stored in other formats (for example the event table).

This commit adds some objects which wrap around the different types of
auditing data, and expose a consistent interface to them. This
architecture will let us:
- write clean code in the presentation layer to display these events on
  a page
- add more types of events in the future by subclassing the `Event` data
  type, without having to rewrite anything in the presentation layer
2019-10-23 13:02:11 +01:00
Chris Hill-Scott
055f000020 Merge pull request #3151 from alphagov/history-page-tidy-up
Bring the service history page up to our current coding standards
2019-10-22 13:48:16 +01:00
Katie Smith
e221024ae7 Merge pull request #3154 from alphagov/no-uploading-letters-in-trial-mode
Stop allowing uploaded letters to be sent for trial mode services
2019-10-22 10:52:07 +01:00
Leo Hemsted
f1eefaa9a2 Merge pull request #3156 from alphagov/tech-docs-url-change
move rest api docs to new url
2019-10-21 16:53:27 +01:00
Leo Hemsted
07e7b03bf3 move rest api docs to new url 2019-10-21 16:34:10 +01:00
Chris Hill-Scott
7c2ecfa094 Use service model for history
Rather than have the view layer interact directly with the API client.
This will let us add extra transformation in the model layer at some
point.
2019-10-21 16:29:06 +01:00
Chris Hill-Scott
ae2db8d2ec Use page header component 2019-10-21 16:29:05 +01:00
Chris Hill-Scott
8db94eafc8 Use service-specific page template for history 2019-10-21 16:29:05 +01:00
Chris Hill-Scott
fce0397b55 Move service history into it own file
We’re going to do some work on this page, let’s put it in a sensible
place first before we add a bunch more code to the wrong place.
2019-10-21 16:29:05 +01:00
Katie Smith
3732e45126 Stop allowing uploaded letters to be sent for trial mode services
We weren't checking if a service was in trial mode when they try to send
an uploaded file. If a service is in trial mode, we now show a banner at
the top of the preview page and no send button.
2019-10-21 14:42:39 +01:00
Katie Smith
b0ffca2774 Only show overlay when content is outside the printable area
The overlay was showing for any invalid pdf - we only want to show the
overlay for invalid pdf files where there is content outside the
printable area.
2019-10-21 11:10:27 +01:00
Katie Smith
3b3f74bbf0 Use the new error messages when uploading a letter
We now use the pattern of showing a box at the top of the page with the
error. The error message has a heading and can have additional details.
Error messages and the invalid pages get stored in the S3 metadata.
2019-10-21 08:37:55 +01:00
Katie Smith
3223956ba2 Allow extra metadata fields when uploading letter to S3 2019-10-21 08:37:55 +01:00
Katie Smith
8f7a05200d Add function to map template-preview errors to user-friendly errors
Template preview now returns a short string as it's error message plus
a list of invalid pages.
2019-10-21 08:35:04 +01:00
Katie Smith
3ad639f571 Link to latest version of letter spec everywhere 2019-10-21 08:35:04 +01:00
David McDonald
3436a190a7 Send precompiled letters with a postage value to the API
We hardcode this as second class for the moment but eventually
will let the user pick.

Currently the API appears to do no validation, e.g. a json
schema, that rejects API calls with the extra key for postage.

Next steps will be to put a PR into the API that will expect a
postage value in the request and save it with the rest of the
notification. Then when that is done we can add the user interface
to the admin app to let the user pick the postage.
2019-10-18 16:35:16 +01:00
Chris Hill-Scott
cb82cfedd1 Merge pull request #3146 from alphagov/transparent-conditional-text
Make text transparent on conditional placeholders
2019-10-17 15:27:39 +01:00
Chris Hill-Scott
7e3b7711bc Add standard back links to the support journey
Removes the non-standard, bottom of page back links where present.

Adds sticky footer to pages with long text boxes.
2019-10-17 13:44:04 +01:00
Pea (Malgorzata Tyczynska)
53ef438a1e Merge pull request #3135 from alphagov/enforce_letter_10_page_limit
Enforce letter 10 page limit
2019-10-16 13:14:30 +01:00
Pea Tyczynska
4b5a131072 Harmonise content of error message with the document laid out by our content designer 2019-10-16 13:02:11 +01:00
Chris Hill-Scott
5d82dc8b36 Make text transparent on conditional placeholders
Otherwise you have a visible copy of the text underlapping the text in the textbox. Which, when they don’t quite align makes the text look bold. Seems to be more noticeable on some browsers/operating systems than others, but a bug all the same.
2019-10-11 10:05:51 +01:00
Pea Tyczynska
2ed1e382b4 Move letter length check to utils repo so template-preview can use it, too
Update requirements
2019-10-10 14:25:19 +01:00
Chris Hill-Scott
7f033efc28 Fix email branding request page with only textbox
If there aren’t a range of options (normally presented as radio buttons)
to show the user on the email branding request page then we just show
the textbox. But we were still doing form validation on the radio
buttons, even though the user couldn’t see them to click them. This
stopped the user from being able to submit the form.

This commit fixes the problem by, in this specific case, pre-ticking the
‘Something else’ radio button.
2019-10-09 16:42:30 +01:00
Pea Tyczynska
c524b0bbf5 Rebase and set upload status to invalid if too many pages 2019-10-09 16:03:48 +01:00
Pea Tyczynska
6639209229 Check page count of actual notification not of template
But for jobs we are only checking preview row, otherwise it would
be too slow. We will check other row when creating the pdf
2019-10-09 16:03:48 +01:00
Pea Tyczynska
12ec2870af Move letter too long banner message over from utils, also refactor 2019-10-09 16:03:47 +01:00
Pea Tyczynska
b42c7c4c9f Refactor page_count checks to avoid magic numbers 2019-10-09 16:03:47 +01:00
Pea Tyczynska
028d156dc7 Do not allow to send job of letters if letters longer than 10 pages 2019-10-09 16:03:47 +01:00
Pea Tyczynska
c690434b1f One off letter flow does not allow to send letter longer than 10 pages 2019-10-09 16:03:47 +01:00
Pea Tyczynska
0adf80f294 Do not allow to send uploaded pdf letters longer than 10 pages 2019-10-09 16:03:46 +01:00
Pea Tyczynska
579ae72abb Do not allow to send a letter template longer than 10 pages 2019-10-09 16:03:46 +01:00
Tom Byers
94f0084b94 Merge pull request #3141 from alphagov/add-govuk-frontend-jinja-extension
Add GOVUK Frontend Jinja Flask extension
2019-10-09 14:51:22 +01:00
Katie Smith
11543e15be Store all data about uploaded letters in the S3 metadata
We had been storing whether or not a file was valid in the S3 metadata,
but using the query string of the URL to store the original filename
and the page count. This meant that if you tried to view the preview
letter page without the query string you would see a `500`. It was
possible for this to happen if you were signed out of Notify while on
the preview page - you would be redirected back to the preview page but
without the query string, causing an error.
2019-10-08 15:34:00 +01:00
Pea (Malgorzata Tyczynska)
28c901d5b9 Merge pull request #3130 from alphagov/notification-coubt
Get notification count from api instead of getting list of notifications from api
2019-10-08 12:19:55 +01:00
Tom Byers
f6a0026d67 Add extension initialisation in app init 2019-10-07 16:35:56 +01:00
karlchillmaid
4d775719d2 Merge pull request #3126 from alphagov/add-letter-status
Add 'Printed' status for letters and update postage information

Discussed with @quis. This change is the first step towards a wider review of the letter statuses.
2019-10-03 15:09:44 +01:00
karlchillmaid
c281cd64a5 Merge pull request #3127 from alphagov/update-validation-errors
Update spreadsheet validation errors
2019-10-03 14:46:27 +01:00
Chris Hill-Scott
3d2f7c3fcf Refine error messages and fix tests
Removing the word ‘duplicate’ because:
- it suggests that the whole column is the same, which it might not be
- it suggests that having duplicate column names is a problem, which is
  only true in the case of recipient columns

Reverts back to saying the column names ‘need to’ match, because we feel
it’s more instructive.
2019-10-03 14:24:28 +01:00
Chris Hill-Scott
78e57dbff9 Clear service cache for when updating org branding
Updating an organisation’s branding might now also update the branding
of services associated to that organisation. This is similar to how
updating an organisation’s type can update the organisation type for its
services.

In the latter case we already make sure to clear the cached version of
these services which is held in Redis.

This commit does the same clearing of the caches when updating an
organisation’s branding (and does a bit of refactoring to do so without
duplication of code.)
2019-10-03 12:10:53 +01:00
Chris Hill-Scott
8b9cc5f4dc Merge pull request #3134 from alphagov/relative-dates-jobs
Use relative dates for jobs on dashboard
2019-10-02 16:19:44 +01:00
Tom Byers
124801836b Merge pull request #3053 from alphagov/add-js-tests-for-template-folder-form
Add js tests for template folder form
2019-10-02 10:21:55 +01:00
Chris Hill-Scott
48940f7705 Merge pull request #3128 from alphagov/increase-letter-prices
Increase letter prices
2019-10-01 08:53:10 +01:00
Tom Byers
d0b6f844ce Move focus of legends to their fieldsets
When testing with the JAWS screenreader, we found
a bug around getting it to announce the name of a
fieldset when we ask the user to select from it.

Bug on pivotal:

https://www.pivotaltracker.com/story/show/165565088

The flows for adding a new template and moving a
template/folder both need the user to select an
option from a radio group. When we add the radio
group to the UI, we need to move focus to it so
the user is in the right place to choose an
option.

The expectation of the original code was that
focusing the field set's legend would work like
focusing the heading of a section of content and
announce the label of it. This didn't happen with
JAWS. This tries to achieve the same by focusing
the whole fieldset instead.

When doing this we also hide the focus style, to
follow the convention for this across www.gov.uk.
2019-10-01 08:26:08 +01:00
Chris Hill-Scott
79369c38c7 Use relative dates for jobs on dashboard
For scheduled files we say ‘sending today at 5:00pm’ or ‘sending
tomorrow at 11:00am’. But once we’ve started processing these files we
say ‘Sent 27 September at 5:00pm’. This makes it sound like 27 September
is not today.

This commit makes the dates shown on the dashboard consistent, by saying
‘today’ and ‘yesterday’ instead of absolute dates.
2019-09-27 13:20:13 +01:00
karlchillmaid
dd1ff2cbf4 Update button text 2019-09-27 12:03:10 +01:00
karlchillmaid
2e5b724adb Update error messages 2019-09-27 12:01:32 +01:00
Pete Herlihy
bdb4bceb57 Adding statement about compliance with NCSC Cloud Security Principles 2019-09-26 15:42:08 +01:00
Rebecca Law
d902ac3b44 Added the url for api docs.
Updated error message when js tests fail
2019-09-25 15:47:35 +01:00