Commit Graph

2635 Commits

Author SHA1 Message Date
Chris Hill-Scott
5fa6639b52 Add count of orgs and services
This uses the existing endpoint so it matches what’s on the homepage.
It will be more up-to-date than the list of services, but no-one’s going
to be adding things up to check they match exactly.
2021-03-12 14:44:32 +00:00
Chris Hill-Scott
8106d6fdf2 Limit data to last 7 days
Otherwise the page gets really long. Also matches what we have on our
dashboards by default.
2021-03-12 14:44:24 +00:00
Chris Hill-Scott
646075f61f Put some stuff on the page
This basically copies the same sections from the existing performance
platform page, with the frontend cobbled together from our existing
patterns.
2021-03-12 14:44:06 +00:00
Chris Hill-Scott
25a6788d66 Use arguments rather than passing around a dict
This makes it harder to write code which will pass tests but fail in
real life.
2021-03-12 14:43:50 +00:00
Chris Hill-Scott
fce4082fff Rename to performance
This is consistent with the old performance platform URLs, which were
gov.uk/performance, and others that we have like /pricing and /features
2021-03-12 13:56:21 +00:00
Rebecca Law
3ca2840652 Rename to performance-dashboard 2021-03-12 11:17:51 +00:00
Rebecca Law
042527e74c Start to build a page to performance platform page. 2021-03-12 11:17:44 +00:00
Chris Hill-Scott
79bbd0fd98 Don’t show future financal years on org page
There’s no useful information in the page for the future financial year
because there’s no way for any of the services to have yet used
anything.

Changes this matches the change we made to the service usage page in
https://github.com/alphagov/notifications-admin/pull/3439/files
2021-03-10 15:39:06 +00:00
Chris Hill-Scott
19488aad97 Merge pull request #3826 from alphagov/add-new-rates-for-2021-financial-year
Add new free allowance rates for 2021 financial year
2021-03-10 14:41:58 +00:00
David McDonald
3e80ba4734 Fix flake8 and isort errors
Note, isort now has default behaviour of searching recursively so we no
longer need the `-rc` flag
2021-03-08 18:48:56 +00:00
Katie Smith
7ae4017d50 Add audit event for inviting users to a service 2021-03-08 14:34:50 +00:00
Chris Hill-Scott
bac54462db Change config structure so allowances are dated
We’re going to have different allowances next financial year. This means
that when someone adds a service, we’ll need to check which year it is,
so we can give them the right allowance.

This commit changes the config structure so that the current allowances
are explicitly assigned to the 2020/21 financial year.

It freezes the tests to the 2020/21 financial year, so they won’t start
failing automatically when next financial year comes around.
2021-03-08 14:25:26 +00:00
Katie Smith
0561937c13 Add an audit event when a service's broadcast permissions change
This adds an audit event to the `events` table when the broadcast
permissions for a service (the service mode, channel or provider
restriction) changes.
2021-03-04 12:09:28 +00:00
Katie Smith
d563cc8432 Change wording for hidden text on job page
To use the singular for the total message box.
2021-02-26 14:55:14 +00:00
Katie Smith
82318387de Add hidden text for pills on job page
The links in the blue boxes on the job page needed hidden text so that
they work out of context. This changes the text from "10 sending" to "10
sending text messages" (with the message type hidden text).
2021-02-24 14:36:21 +00:00
Leo Hemsted
a85e20ed3e Merge pull request #3815 from alphagov/permissions-bug
allow caseworkers to view letter previews
2021-02-23 16:57:34 +00:00
Leo Hemsted
087f908968 allow caseworkers to view letter previews
they can already view notifications page, but the png and pdf letter
previews just 403 for them currently.
2021-02-23 16:08:03 +00:00
David McDonald
f8f3d44511 Add form to set service broadcast account type
Note, no option at the moment to set the service broadcast account type
as None, or back to without the broadcast permission. This has been done
for speed of development given the chance of us needing this is very
low. We can add it later if we need to.
2021-02-23 16:03:14 +00:00
David McDonald
6837b76d44 Remove existing broadcast permission form
This will be replaced by a new form that has it's own template, route
etc as it will vary quite a lot from the existing service permission
form.
2021-02-23 16:03:13 +00:00
Ben Thorner
52a5da4d17 Handle exception is org name already exists
Previously this would return a 500 error, as the 400 exception was
not handled from the API [1]. Note that:

- We tend to rely on exception messages to identify the error that
occurred [2][3], with services being a notable deviation [4]. I've
used the exception message approach, as this is more granular and
broadly consistent with the rest of the app.

- There is already code to cover this scenario when a user changes
the name of an existing organisation or service, but the mechanism
is different [5][6]. It makes sense to just get any error from the
call to try and create the organisation.

- The API mock is based on one for services [7], but I've chosen to
have it inline with the test, since we're unlikely to reuse it, and
it's clearer to have the test setup as part of the test.

[1]: 8f99da525d/app/organisation/rest.py (L34-L47)
[2]: 70b606a2d4/app/main/views/manage_users.py (L166)
[3]: 70b606a2d4/app/main/views/templates.py (L499)
[4]: 70b606a2d4/app/main/views/add_service.py (L30)
[5]: 70b606a2d4/app/main/views/service_settings.py (L102-L104)
[6]: 70b606a2d4/app/main/views/organisations.py (L264-L266)
[7]: 0abc143147/tests/conftest.py (L590-L606)
2021-02-17 09:34:30 +00:00
Pea Tyczynska
b2e4f76f94 Fix import order 2021-02-16 14:46:13 +00:00
Pea Tyczynska
eb9e6e2c71 Update organisation billing details 2021-02-16 14:46:13 +00:00
Pea Tyczynska
36c72bb4cc View edit organisation billing details page 2021-02-16 14:46:13 +00:00
Pea Tyczynska
f4dc2a173e Link to edit billing details page for organisation 2021-02-16 14:46:13 +00:00
Pea Tyczynska
8ea748f6e4 Update organisation notes 2021-02-16 14:46:12 +00:00
Pea Tyczynska
f0d94a009e Organisation notes visible on organisation settings page 2021-02-16 14:46:11 +00:00
Ben Thorner
486393962e Show 'From' / 'Reply to' on all sending screens
This makes the preview of the email / SMS to send consistent with
the final screen, which we previously changed to show the "reply
to" text irrespective of whether the user had selected anything.
2021-02-10 10:43:29 +00:00
Ben Thorner
933d5bf68e Show 'From' / 'Reply To' if set for notification
Previously when a service had multiple "reply to" entries setup for
email or SMS, we would show the one that was selected on all screens
[1][2] except the final one, where the notification is actually sent.
This fixes that, with the caveat that it will also show for services
with only one "reply to" entry (see notes below) - we will look at
making this consistent on the previous screens in the next commit.

Here's a bit more detail on how this works:

- If a service has multiple "reply to" entries, the journey to send a
  one-off message starts with a screen to select the "sender_id", which
  is otherwise "None" [3].

- The "sender_id" is subsequently resolved to an actual email / phone
  number by calling an API [4] and plucking it out of the response JSON.

- The email / phone number then get rendered as part of the preview
  template [5][6].

- Unfortunately the "sender_id" is removed from the session by the time
  we get to the "view_notification" view [7].

- However, we can get back the equivalent text from the notification
  JSON, which is set by the API when the notification is created [8],
  give or take a bit of validation code [9][10].

- But the "reply_to_text" field is also set by the API when the service
  only has one "reply to" entry, so it will show then as well.

We could add look at the number of "reply to" entries for the service,
in order to consistently only show it when there is more the one. But
it seems more useful to show it on previous screens, since it provides
more information than is currently show (esp. for emails).

[1]: 93226ec5d6/app/main/views/send.py (L441-L442)
[2]: 93226ec5d6/app/main/views/send.py (L966-L967)
[3]: 93226ec5d6/app/main/views/send.py (L247)
[4]: 93226ec5d6/app/main/views/send.py (L1071-L1082)
[5]: 93226ec5d6/app/templates/views/notifications/notification.html (L80)
[6]: https://github.com/alphagov/notifications-utils/blob/master/notifications_utils/jinja_templates/sms_preview_template.jinja2
[7]: 93226ec5d6/app/main/views/send.py (L1059)
[8]: f8b4c9151c/app/service/send_notification.py (L87-L93)
[9]: f8b4c9151c/app/models.py (L653)
[10]: https://github.com/alphagov/notifications-utils/blob/master/notifications_utils/recipients.py#L482
2021-02-10 10:43:27 +00:00
Pea Tyczynska
c60be7000a Add notes to edit billing details page
As per ticket and as per Caley's request, so everything can be
edited together.

Also pluralise labels for billing contact info, to indicate
that putting multiple in is ok, and widen the input fields so
that it is more comfortable to input multiple contact details.
2021-02-03 10:30:02 +00:00
Pea Tyczynska
079f371bc5 Update attribute names following changes in API 2021-02-03 10:30:01 +00:00
Pea Tyczynska
8f21caa87a Change service billing details
View page that lets you change service billing details and
update details on form submission.
2021-02-03 10:30:01 +00:00
Pea Tyczynska
73031962a7 Change link leads to edit billing details view 2021-02-03 10:29:19 +00:00
Pea Tyczynska
d82f90754f Fix permissions for edit service note page 2021-02-03 10:29:18 +00:00
Tom Byers
513fbff6e0 Convert radios on set-template-sender page
Includes making the legend the h1 for the page to
follow design system guidance:

https://design-system.service.gov.uk/get-started/labels-legends-headings/
2021-01-27 10:52:24 +00:00
Tom Byers
ece956e324 Convert radios on set-sender page
Includes making the legend the page header to
follow design system guidance:

https://design-system.service.gov.uk/get-started/labels-legends-headings/

I had to add some override styles to allow the
legend to classes as a full-width column, and the
radios to be in one that is three-quarters.
2021-01-27 10:52:24 +00:00
Tom Byers
f6cef24617 Convert create API key radios to GOVUK Frontend 2021-01-27 10:52:24 +00:00
David McDonald
8e3aeea9a0 Merge pull request #3775 from alphagov/set-sender-bug
Fix bug with incorrect redirect to send_one_off
2021-01-26 13:54:18 +00:00
Tom Byers
73afee8a12 Merge pull request #3771 from alphagov/fix-all-radios-forms-with-duplicate-legends
Fix all radios forms with duplicate legends
2021-01-26 10:57:39 +00:00
David McDonald
9e477011d3 Fix bug with incorrect redirect to send_one_off
If a user has only send_message permissions, when they click on a
template name they are currently taken to the `send_one_off` page. This
is incorrect as if there is more than one SMS sender or email reply to
address, then they should pick the address they wish to use.

This commit fixes that bug by redirecting them to the `set_sender`
route. Note, if there is only one sender then the `set_sender` will
redirect the user on to the `send_one_off` route.

https://www.pivotaltracker.com/story/show/176541486
2021-01-22 18:34:30 +00:00
Pea Tyczynska
e2ecff050d Merge pull request #3772 from alphagov/add-service-notes
Add service notes
2021-01-20 17:19:22 +00:00
Tom Byers
8974ffb43d Stop legend duplication on disable-platform-admin 2021-01-20 16:29:51 +00:00
Chris Hill-Scott
db4d9f886c Display broadcasts without a template
At the moment the admin app expects all broadcasts to have a template,
and expects the content of the alert to come from the template.

This commit makes it so those pages can still get a `Template` instance,
but populated with content straight from the `content` field in the
database.
2021-01-20 11:18:13 +00:00
Pea Tyczynska
5eb6ac2311 Add test for textarea
Also remove redundant error handling - if unexpected error happens,
it will be handled at the app level.
2021-01-19 18:25:52 +00:00
Pea Tyczynska
5ec49fc976 Refactor form instantiation
Form can be pre-filled with existing data upon instantiation.
WTForms will know not to do this on POST request.

Co-authored-by: Chris Hill-Scott <me@quis.cc>
2021-01-19 18:24:56 +00:00
Chris Hill-Scott
99b7d8a66f Add flow for composing an alert without a template
We think that in some cases alerts will be composed in the moment, and
therefore making people first create a template is:
- not a good use of their time
- adding some conceptual complexity which they don’t need

This commit makes it possible to type some words and have them go
straight into the `content` field in the database.

In the future we might want to progressively enhance the radio buttons
so they show on the same page (like we do with the grey buttons on the
templates page).
2021-01-18 17:09:01 +00:00
Pea Tyczynska
6d7b16fd59 View edit service notes page 2021-01-15 13:36:12 +00:00
Pea Tyczynska
5818942908 'Change' link links to edit_service_notes 2021-01-14 18:00:44 +00:00
Chris Hill-Scott
2bdd86c044 Remove logging of session size
There’s no record of this warning in our logs at the moment.
2021-01-13 13:11:58 +00:00
Chris Hill-Scott
287689c1b3 Merge pull request #3763 from alphagov/count-chars-sms-broadcast-templates
Add fragment or character counting when editing text message or broadcast templates
2021-01-08 16:38:03 +00:00
Chris Hill-Scott
638e505432 Stop content length message from making page jumpy
The content length message was making the page jumpy and causing reflows
in three ways. This commit addresses each of those ways:

As the user scrolled
---

The footer went from fixed to sticky and the spacing around the message
changed. This change in spacing was needed so that the message looked
right in both contexts.

I think the best way to resolve this is to not use the sticky footer
when editing text message or broadcast templates.

On my 1440×900 screen I can fit a 5 fragment text message, plus the
‘will be charged as 5 text messages’ message, plus the save button.

Our top 10 screen resolutions according to our analytics are:

Position | Resolution | Percentage of users
---------|------------|--------------------
 1       | 1920x1080  | 27.37%
 2       | 1280×720   | 11.07%
 3       | 1366×768   |  8.88%
 4       | 1536×864   |  5.79%
 5       | 1440×900   |  4.52%
 6       | 1600×900   |  3.71%
 7       | 1280×1024  |  3.10%
 8       | 1680×1050  |  2.42%
 9       | 1920×1200  |  2.33%
10       | 2560×1440  | 1.99%

When the page first loaded
---

The message is empty so takes up no space, then the javascript fires
and inserts the message, taking up a line of space.

This is resolved by making the empty message take up space with a
non-breaking space character.

When the user first typed
---

We previously didn’t show any message until the user started typing.
This meant that, with the above fix, there was a larger than normal
empty space between the textarea and the save button.

This is resolved by always showing the message, even when the user
hasn’t typed anything yet.

***

These are design decisions which made sense when the message was
displayed along side the button, but we’ve had to change now that the
message is above the button.
2021-01-08 15:39:21 +00:00