Commit Graph

374 Commits

Author SHA1 Message Date
karlchillmaid
92343aa45e Update change links and headings (#3064)
* Update Settings titles
* Update Change links on settings
* Update Team members Change link
* Update Settings pages headings
2019-07-25 11:52:13 +01:00
Rebecca Law
cc29764d43 Update unit test for the content changes. 2019-07-24 12:03:30 +01:00
Chris Hill-Scott
45ae5b1782 Merge pull request #3041 from alphagov/delete-letter-contact
Let users delete letter contact blocks
2019-07-24 10:47:48 +01:00
Chris Hill-Scott
44d5dc44d3 Allow deleting default letter contact blocks
It’s possible to delete default letter contact blocks because there is a
fallback – having a blank letter contact block. This is different to SMS
senders and reply to addresses.

For this to make sense it also means:
- adding the ‘blank’ letter contact block to the list of letter contact
  blocks
- having a way of setting the default back to being blank
2019-07-22 11:57:11 +01:00
Chris Hill-Scott
17bf06d04c Let users delete letter contact blocks
Because they can delete email reply to addresses and text message
senders.
2019-07-22 11:57:11 +01:00
Pea Tyczynska
eae1ccf607 Refactor following review 2019-07-19 16:10:55 +01:00
Pea Tyczynska
c8ed608c9a Only show nhs radios if user has nhs domain email
Also split local NHS into two groups following designer advice
on readability.
2019-07-18 17:07:42 +01:00
Katie Smith
53214937a8 Stop allowing the service org type to be changed
The service organisation type will either be the same as the org type of
the service's organisation or will be set by a user when creating a new
service. This removes the ability to change it from the platform admin
settings table.
2019-07-16 11:36:19 +01:00
Chris Hill-Scott
886992af17 Merge pull request #3043 from alphagov/add-first-letter-contact-experience
Make adding a ‘letter contact block’ for the first time make sense
2019-07-12 15:14:18 +01:00
karlchillmaid
c8a3564329 Merge pull request #3050 from alphagov/contact-call-to-action-update
Make 'contact us' links consistent
2019-07-12 11:30:23 +01:00
Chris Hill-Scott
6cd69be66e Fix tests 2019-07-12 11:10:56 +01:00
Chris Hill-Scott
c9f76e427d Fix tests 2019-07-10 10:18:30 +01:00
Chris Hill-Scott
6d5f542a88 Count of orgs and live services for platform admin
This makes it consistent that an option which contains more options has
a hint about how many options it contains.

Also adds a formatter to get us ready for 1,000 services 🎉
2019-07-08 12:31:31 +01:00
Chris Hill-Scott
7fef51aa6a Apply sender to template when adding
If you’ve come from a template to add a new letter sender then it’s
because you want those words on that template. This commit adds the
extra API call to make that happen.
2019-07-08 11:20:28 +01:00
Chris Hill-Scott
8e080d6079 Go back to template if coming from template
Most users don’t have multiple contact blocks. So by default it should
feel like you’re just editing the one contact block, rather than
managing a collection of them. So this page skips the ‘choose’ page when
the user doesn’t yet have any contact blocks.
2019-07-08 10:46:43 +01:00
Chris Hill-Scott
174064c30a Relabel checklist step to ‘accept’
There’s no signature involved any more.
2019-06-19 13:21:20 +01:00
Chris Hill-Scott
7b3d522070 Merge pull request #2991 from alphagov/user-api-client-return-json
Make user API client return JSON, not a model
2019-06-06 09:51:52 +01:00
Chris Hill-Scott
944a7d302c Fix logic for showing and hiding checkbox
The ‘make this default’ checkbox should be shown, except when:
- the user is adding their first email reply to address (because the
  first one has to be the default)
- they’re editing the existing default (because they can’t change it
  to be not default)
2019-06-05 16:41:06 +01:00
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
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
8835486d4e Look in organisation for whitelisted domains
At the moment we have to update a YAML file and deploy the change to get
a new domain whitelisted.

We already have a thing for adding new domains – the organisation stuff.

This commit extends the validation to look in the `domains` table on the
API if it can’t find anything in the YAML whitelist.

This has the advantage of:
- not having to deploy code to whitelist a new domain
- forcing us to create new organisations as they come along, so that
  users’ services automatically get allocated to the organisation once
  their domain is whitelisted
2019-06-03 11:41:13 +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 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
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
9d2b60b56b Show try again link when email verification fails 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
Chris Hill-Scott
9d40986d53 Make ‘you must set organisation’ text shorter
So it fits in the column.
2019-05-20 16:15:47 +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
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
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
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
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
74fb30ce5f Add GOV.UK Design System style back links
The Design System has standardised on back links being at the top of the
page, decorated with a small text-coloured arrow.

I think this makes more sense than having them at the bottom, because it
suggests, in some way, being able to go back before commiting to any of
the forms on the page. Whereas the things at the bottom of the page
should be performing actions on what’s in the page.

The reason for making this change now is that it de-clutters the area
around the green buttons. This was presenting a design challenge where
multiple levels of interaction were happening in the same form. Moving
these back links to the top of the page should mean that, in these
complicated forms, there’s one fewer thing to compete for the user’s
attention.

I’ve componentised this into a `page_header` macro so that the change is
easier to roll out and maintain.
2019-04-30 15:29:39 +01:00
Chris Hill-Scott
9c846979be Don’t error if service without an organisation requests to go live
It was trying to look at `organisation.domains`, which caused an
`AttributeError` if there wasn’t an organisation.
2019-04-23 16:48:15 +01:00
Chris Hill-Scott
9f1bc285fa Merge branch 'master' into record-user-that-requested-to-go-live 2019-04-23 15:38:44 +01:00
Chris Hill-Scott
9d32d40ee4 Merge pull request #2908 from alphagov/allow-invited-users-to-count
Let inviting a user complete the go live checklist
2019-04-18 11:17:56 +01:00
Rebecca Law
da8eead475 Update service with the user that requested to go live.
When a service is marked as live update the service with the go live datetime.
2019-04-16 15:01:54 +01:00
Chris Hill-Scott
116f36192f Let inviting a user complete the go live checklist
At the moment you have to wait for whoever you’ve invited to accept the
invitation before you can go live. Since this check is mainly for the
benefit of the service, not us, we should trust that people’s intentions
are good when they invite someone.

So this commit also checks the invited users when counting how many team
members a service has.
2019-04-12 22:45:48 +01:00
Chris Hill-Scott
8626777fde Don’t let services go live without an organisation
We shouldn’t be making services live without an agreement in place. In
order to have an agreement in place we need to know what organisation
operates the service.

If a service comes along but belongs to an organisation we don’t know
about then we should create that organisation. This commits removes the
link, which should force this to happen.
2019-04-12 22:42:23 +01:00
Chris Hill-Scott
9684e962ae Refactor go live tags into service model
Since this function only takes one argument, a service, it might as well
be a method of the service.
2019-04-12 15:19:32 +01:00
Chris Hill-Scott
3565ffc33f Remove dependence on domains.yml from settings
Settings looked at `domains.yml` when users were making go live requests
or email branding requests.

This will allow us to remove the `domains.yml` file, by using
information about organisations that is now stored in the database
instead.
2019-04-12 15:19:31 +01:00
karlchillmaid
f997b446ff Update app/templates/views/service-settings/request-to-go-live.html
Co-Authored-By: quis <me@quis.cc>
2019-04-11 15:44:28 +01:00