Commit Graph

2238 Commits

Author SHA1 Message Date
Chris Hill-Scott
628e344b36 Make user API client return JSON, not a model
The data flow of other bits of our application looks like this:
```
                         API (returns JSON)
                                  ⬇
          API client (returns a built in type, usually `dict`)
                                  ⬇
          Model (returns an instance, eg of type `Service`)
                                  ⬇
                         View (returns HTML)
```
The user API client was architected weirdly, in that it returned a model
directly, like this:

```
                         API (returns JSON)
                                  ⬇
    API client (returns a model, of type `User`, `InvitedUser`, etc)
                                  ⬇
                         View (returns HTML)
```

This mixing of different layers of the application is bad because it
makes it hard to write model code that doesn’t have circular
dependencies. As our application gets more complicated we will be
relying more on models to manage this complexity, so we should make it
easy, not hard to write them.

It also means that most of our mocking was of the User model, not just
the underlying JSON. So it would have been easy to introduce subtle bugs
to the user model, because it wasn’t being comprehensively tested. A lot
of the changed lines of code in this commit mean changing the tests to
mock only the JSON, which means that the model layer gets implicitly
tested.

For those reasons this commit changes the user API client to return
JSON, not an instance of `User` or other models.
2019-06-05 11:13:41 +01:00
Chris Hill-Scott
77469e0710 Add left-hand navigation to pricing pages
So that you don’t have to use the footer navigation to switch between
these related pages. Matches the template we use for organising
features-related content.
2019-06-04 13:49:31 +01:00
Chris Hill-Scott
22299ea97d Add ‘How to pay’ page
Content from https://docs.google.com/document/d/1uIFW8c7Vk0-FQ-d8H1FmNZLHKn_tOXWg5oUL8bbcZzw/edit?ts=5ced1ae4#
2019-06-04 13:49:16 +01:00
Chris Hill-Scott
20c4719d07 Move pricing template into own folder
So we can keep thing organised when adding more pricing-related content.
2019-06-04 13:04:24 +01:00
Chris Hill-Scott
bbbda5f968 Merge pull request #2994 from alphagov/let-trial-mode-services-be-archived
Let users archive their own trial mode services
2019-06-04 13:03:41 +01:00
Chris Hill-Scott
954f43ae48 Let users archive their own trial mode services
At the moment we have a blanket rule that users can’t archive their own
services, to prevent someone accidentally deleting a real live service,
because that would be Very Bad.

But the tickets we get from users asking us to delete services are for
services they set up when they were just trying out Notify. There’s not
much harm in letting users delete these services, the consequences of
doing so are much lower than those of deleting a live service. And it
should mean fewer support tickets for us to deal with.
2019-06-04 09:45:51 +01:00
Chris Hill-Scott
3b22216a68 Remove redundant decorators
`@user_has_permissions` is overridden by @user_is_platform_admin – it
doesn’t make sense to have them used together.
2019-06-03 14:12:12 +01:00
Chris Hill-Scott
647daa6ca4 Make organisation settings platform admin only
At the moment the only setting that a normal organisation team member
can change is the name of the organisation is its name. And we don’t
even want them to be able to change this. So this commit hides the
settings page entirely for non-platform-admin users.
2019-06-03 14:12:11 +01:00
Pea (Malgorzata Tyczynska)
c55c2a2f56 Merge pull request #2993 from alphagov/fix_test_send_placeholders
Fix error where sending test message flow skipped first placeholder
2019-05-30 15:57:13 +01:00
Pea Tyczynska
bafa4e345b Change assertion for consistency 2019-05-30 15:45:17 +01:00
Leo Hemsted
3a1282d03f Merge pull request #2987 from alphagov/org-trial-services
move trial mode services from org dashboard to separate page
2019-05-30 11:19:17 +01:00
Pea Tyczynska
21ab8638b9 Fix error where sending test message flow skipped first placeholder
first way round and then collected placeholders again. Now the flow
collects all placeholders in one round.

Also fix the back link for step-1 for test flow so it goes back
to choosing recipient number

Also move operators around following flake8's advice :)
2019-05-29 16:56:55 +01:00
Leo Hemsted
4375c3d151 move to model based code layout 2019-05-28 16:46:12 +01:00
Leo Hemsted
9795f2b838 move trial mode services from org dashboard to separate page
the new page is platform admin only, and also has search built in
also, split test_organisation_invites into two files
2019-05-28 16:17:29 +01:00
Pea Tyczynska
4fd9e91993 Do not verify email when updated email address did not change 2019-05-24 11:22:20 +01:00
Pea Tyczynska
934bcb919f Reduce timeout to 45 seconds following analysis by Chris H-S:
"Failure is slower than success. So the longer a notification
takes to get a status, the more likely it is for that status
to be a failure anyway. This increases dramatically after 45 seconds.
The percentage of emails that go to delivered in less than 90 seconds
is 98.92%. To get to 99% we’d need to increase the timeout
to 178 seconds (3 minutes). We could still get 98.7% of notifications
by dropping the timeout to 45 seconds, and improve the experience
for notifications that are likely to fail by returning an error more quickly."
2019-05-23 15:34:25 +01:00
Pea (Malgorzata Tyczynska)
44ddd287b5 Code refactor, details below:
Apply suggestions from code review

Reduce max verification waiting time to 90 seconds

Also minor changes following peer review

Co-Authored-By: Chris Hill-Scott <me@quis.cc>

Use constants for notification status collections on verify reply-to

email address

Use a cleaner way of adding request arguments to url_for()
2019-05-23 15:34:25 +01:00
Pea Tyczynska
200fff6c66 Different back links and form actions on verify page depending if add or change 2019-05-23 15:34:25 +01:00
Pea Tyczynska
e406be3f80 Ensure that when updating reply-to email address old address is replaced
Also fix tests
2019-05-23 15:34:25 +01:00
Pea Tyczynska
6cf9959058 Stop AJAX when success or failure and show form on failure
AJAX requests stop on success or failure, as the waiting page
does not have to referesh any longer.

Also on failure a form that allows user to try again
is shown.
2019-05-23 15:34:25 +01:00
Pea Tyczynska
3251fc4e00 Change content for email reply-to verification journey
Earlier commits used placeholder content while awaiting official
content.
2019-05-23 15:34:24 +01:00
Pea Tyczynska
441c1f441b Verify email address when editing reply-to address
Also fix the tests
2019-05-23 15:34:24 +01:00
Pea Tyczynska
431d2162c0 Fail reply-to email verification if no delivery within 5 minutes 2019-05-23 15:34:24 +01:00
Pea Tyczynska
ea314ad75f Deal with duplicate reply-to email addresses 2019-05-23 15:34:24 +01:00
Pea Tyczynska
8f3b560a4e Use ajax to auto-refresh reply-to email verifiaction page 2019-05-23 15:34:24 +01:00
Pea Tyczynska
ed599f0c03 Save new reply-to email if test notification delivered
Also check if it should be a default reply-to email address
2019-05-23 15:34:24 +01:00
Pea Tyczynska
45ac0d7812 Waiting page shows correct messages 2019-05-23 15:34:23 +01:00
Pea Tyczynska
d70afddf51 Send request to api to check if reply-to address is working 2019-05-23 15:34:23 +01:00
Alexey Bezhan
cab780b549 Remove edit_folder_permissions service setting (feature flag)
This removes the edit_folder_permission checks from the code, enabling
the folder permissions for all services.

This also fixes folder-related tests to set up appropriate user
permissions.

This should only be merged right after alphagov/notifications-api#2428,
when all other permission stories are done.
2019-05-17 11:20:16 +01:00
Chris Hill-Scott
81b299428f Add tests for editing folder permissions for platform admin users 2019-05-17 11:03:41 +01:00
Alexey Bezhan
5dbd229781 Hide template folder permission editing for platform admin users
Platform admin users can access all template folders, so the folder
permissions form always displays everything as checked for them,
which makes it look like the form isn't actually working. We could
do the check based on folder data, but the field still wouldn't
have any effect on permissions. So instead, we hide it completely
for platform admin users.

Submitting the form will remove any folder permissions from the DB
for the platform admin user (which can still be created by changing
permissions on the template folder 'Manage' page), but that's only
relevant if a user stops being a platform admin but keeps their
Notify services.
2019-05-17 10:46:56 +01:00
Katie Smith
5df3148610 Merge pull request #2954 from alphagov/support-welsh-characters
Allow Welsh characters in SMS templates
2019-05-15 16:34:02 +01:00
Chris Hill-Scott
61b056e490 Merge pull request #2964 from alphagov/different-back-link-from-job
Always go back to previous page from notification
2019-05-15 16:26:34 +01:00
Chris Hill-Scott
9c21541d2e Merge pull request #2955 from alphagov/auto-nhs-org-type
Set org type to NHS if user has NHS email address
2019-05-15 16:26:23 +01:00
Katie Smith
5be6b41195 Allow Welsh characters in SMS
- This brings in the latest version of notifications-utils which
allows Welsh characters in SMS templates.
- Updated the pricing page to show the new prices for SMS with certain
Welsh characters
2019-05-15 14:20:49 +01:00
Chris Hill-Scott
4fc7498415 Include status when linking to notifications page
Without this argument the 'sending' filter doesn’t get highlighted by
default.
2019-05-15 10:04:43 +01:00
Katie Smith
da971b2da7 Allow custom notes when service goes live
This adds an option on the organisation settings page to add
'request_to_go_live_notes'. When a service belonging to this
organisation requests to go live, any go live notes for the
organisation will be added to the Zendesk ticket in the 'Agreement
signed' section.
2019-05-14 14:24:26 +01:00
Chris Hill-Scott
e4b1759b3b Merge pull request #2965 from alphagov/no-copy-paste-in-zendesk
Remove redundant info from go live emails
2019-05-14 11:43:19 +01:00
Chris Hill-Scott
d01ed30da0 Keep email address in go live ticket
It’s useful because it’s not easy to see in the Zendesk UI.
2019-05-14 11:17:47 +01:00
Pea (Malgorzata Tyczynska)
828579ce05 Merge pull request #2958 from alphagov/precompiled_for_everyone
Remove precompiled letters permission: precompiled for everyone
2019-05-13 14:03:14 +01:00
Chris Hill-Scott
507b5b9933 Remove line about checklist from go live email
It’s impossible for people to go live without technically completing the
checklist now.
2019-05-10 10:46:15 +01:00
Katie Smith
f3f8f4085f Fix broken links
There were still a few links pointing to `/features/using-notify`
2019-05-10 09:05:07 +01:00
Chris Hill-Scott
d6b6f1689f Remove copy-pasteable version of go live info
We’ve automated this now so we don’t need it in a format that’s easy to
copy and paste into a spreadsheet.
2019-05-09 17:41:27 +01:00
Chris Hill-Scott
b4894e7a03 Always go back to previous page from notification
When looking at a notification you can either be coming from the page
of all notifications, or from a job. Currently the back link always
takes you to the page of all notifications.

This commit makes it a bit more sophisticated so if you’ve come from
looking at a job, you go back to the job.
2019-05-09 17:33:22 +01:00
Pea Tyczynska
18b545af51 Remove precompiled letters permission as everyone can send precompiled now 2019-05-09 11:01:11 +01:00
Chris Hill-Scott
1708d17e40 Set org type to NHS if user has NHS email address
We get people signing up for Notify who work for the NHS, but whose
organisation we don’t know about. For example
`name@gloshospitals.nhs.uk` will be someone working for Gloucestershire
Hospitals NHS Foundation Trust, which is not an organisation we have in
the database.

Currently we rely on knowing the specific organisation (NHS as a whole
isn’t an organisation) in order to set the organisation type for any
services they create. This commit adds a special case for anyone with an
NHS email address to set the organisation type to be NHS, even when we
don’t know which specific part of the NHS they work for.

This is the same thing we do on the API side for NHS email and letter
branding:
a4ae5a0a90/app/dao/services_dao.py (L310-L313)
2019-05-08 12:08:54 +01:00
Chris Hill-Scott
80dec99a56 Merge pull request #2946 from alphagov/use-service-organisation-for-service-agreement
Look at service’s organisation on agreement page
2019-05-07 16:10:18 +01:00
Katie Smith
259a82e066 Update for new format of data returned from api
- API will now send through `created_by_name` instead of `created_by`.
- API will always send through `current_month_billable_sms` but this can
now be `0` instead of `None`.
2019-05-07 08:30:34 +01:00
Katie Smith
a74da6d14e Show monthly usage by SMS provider on Providers page
This adds a '% monthly traffic' column to the SMS table on the Providers page
to let us see how much traffic is being sent to each SMS provider.
2019-05-07 08:30:34 +01:00
Pea (Malgorzata Tyczynska)
a7d8918ee0 Merge pull request #2951 from alphagov/performance-platform-xlsx
Provide Performance Platform report as Excel file
2019-05-03 15:59:06 +01:00