Commit Graph

5072 Commits

Author SHA1 Message Date
Chris Hill-Scott
7be08e2f74 Check for templates before going live
We need users to have created some templates before they go live, so we
can see what kind of messages they intend to send.

We can do this automatically based on the work done in
https://github.com/alphagov/notifications-admin/pull/1892
2018-02-27 15:23:41 +00:00
Chris Hill-Scott
ca3fdfd907 Check for team members on request to go live page
One of the things that we want to check before a service goes live is
that they have at least two team members with the manage service
permission. Anyone who can make a request to go live has this
permission, so that means one additional user is needed. This is what we
can automatically communicate to the user.

Under the hood this makes use of the logic added in
https://github.com/alphagov/notifications-admin/pull/1891
2018-02-27 15:17:31 +00:00
Rebecca Law
81cceb1c44 Merge pull request #1901 from alphagov/becca-invite-users
Organisation invite users
2018-02-27 13:12:33 +00:00
Rebecca Law
d638b446f5 Merge branch 'master' into becca-invite-users 2018-02-27 10:13:40 +00:00
Rebecca Law
41309721bd - Remove organisation setter for the user model.
- Revert the change to the log level for admin.
2018-02-26 22:18:46 +00:00
Rebecca Law
298eb77b54 Refactor the check token endpoint to use the newly merged api endpoints. 2018-02-26 11:50:40 +00:00
Chris Hill-Scott
c09b9d1f85 Merge pull request #1904 from alphagov/merge-all-the-things
Merge all the things
2018-02-26 10:03:11 +00:00
Chris Hill-Scott
2435a29672 Merge pull request #1838 from alphagov/beta-banned
Remove beta badge from header
2018-02-26 10:02:53 +00:00
Chris Hill-Scott
c16306a84e Explain what ‘beta’ means for Notify users 2018-02-26 09:35:59 +00:00
Chris Hill-Scott
59bb7bdd5d Don’t parametrize on government domains
There’s over 1000 domains in our file. This is too much for parametrize
to handle when running the tests on multiple cores. End up with this
error:
```
Different tests were collected between gw1 and gw2.
```
2018-02-26 08:53:48 +00:00
Chris Hill-Scott
9ca6bd0f24 Remove central orgs that haven’t signed MOU 2018-02-26 08:53:48 +00:00
Chris Hill-Scott
9cc6cc3da9 Mark all councils who haven’t signed the agreement
We only sign agreements for a whole council. Therefore we know that if
a council isn’t one of the ones who has signed an agreement, no part of
that council has signed the agreement, therefore it’s a `false` not a
`null`.
2018-02-26 08:53:48 +00:00
Chris Hill-Scott
c7d2155eeb Remove parish councils
There are a lot of them, and they’re probably too small to ever be using
Notify. They’re just bulking out the data unneccessarily.
2018-02-26 08:53:48 +00:00
Chris Hill-Scott
b2dd5cd8ae Talk about crown/non-crown not local/central
The thing that matters for which agreement an organisation has to sign
is whether or not that organisation is crown or non-crown.

There is only a partial overlap between crown/non-crown and
local/central. We can’t infer one fro the other. So this commit makes it
explicit by marking all local government organisations as non-crown,
which is something we can know for sure.

We don’t, for example, know the inverse, that all parts of all central
government organisations are crown bodies (but we can mark some of them
as being so later on).
2018-02-26 08:53:47 +00:00
Chris Hill-Scott
5404107842 Split email list out again
The list of email domains is a different list from the list of all
government domains. And because the list of all government domains is
really long now, it could be unnecessarily slow to search through when
(a lot of the time) all we care about is whether the email address ends
with `.gov.uk`.
2018-02-26 08:53:47 +00:00
Chris Hill-Scott
8b739ddc50 Make whitespace consistent 2018-02-26 08:53:47 +00:00
Chris Hill-Scott
9e8d69da7d Get rid of the regex
Regexes are hard to read, and this one is probably quite slow because
the string formatting means it can never be precompiled.
2018-02-26 08:53:47 +00:00
Chris Hill-Scott
be18448f2a Refactor to only sort once
Rather than doing the sort every time an instance is initiated, we can
speed things up by just doing it the once when the app starts up.
2018-02-26 08:53:47 +00:00
Chris Hill-Scott
641511ce12 Mark which councils have signed the agreement
This means we’ll be able to tell them for sure that they don’t need to
signed it again.

List taken from looking through the folder of signed agreements on
Google Drive.
2018-02-26 08:53:47 +00:00
Chris Hill-Scott
7f5f0ea02b Add list of local council domains
Taken from:
https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/655371/List_of_.gov.uk_domain_names_as_at_26_October_2017.csv/preview

Then filtered down to councils using this script:
```python
import clipboard
import csv
with open('List_of_.gov.uk_domain_names_as_at_26_October_2017.csv') as l:
    f = csv.reader(l)
    s = ''
    for row in f:
        if 'council' in row[1].lower():
            s = s + "{}:\n    sector: local\n    owner: {}\n".format(*row)
    clipboard.copy(s)
```
2018-02-26 08:53:47 +00:00
Chris Hill-Scott
20fe084ff1 Mark central and NHS organisations w/ signed MOUs
This adds information about which orgs have signed an MOU to the domain
list. The meaning of the attribute is:
- `true`: MOU signed for the whole organisation
- `false`: no MOU for any part of the organisation
- `null` (or missing): can’t be sure if it’s true or false
2018-02-26 08:53:46 +00:00
Chris Hill-Scott
f93ef2eb3d Convert domain list to YAML
YAML is easier to edit than Python code, and having it in the root
directory of the app makes it nice and easy to find.
2018-02-26 08:53:46 +00:00
Chris Hill-Scott
91ab54e9c1 Allow lookup of org details
This commit:
- makes the logic around looking up a domain a bit more sophisticated
  by matching on the longest domain name first
- exposes the details about an organisation to consumers of the
  `GovernmentDomain` class
2018-02-26 08:53:46 +00:00
Chris Hill-Scott
911fc3ff4c Start adding extra information about each domain
In some cases we can tell based on someone’s email domain whether they
work for a central or local government organisation, and whether they
will need to sign the MOU or agreement in order to go live. So this
commit creates a structure to store this information.
2018-02-26 08:53:46 +00:00
Chris Hill-Scott
156625a994 Remove raw string notation
Makes it fiddlier to add new domains, and is only needed to generate the
regular expression. Much cleaner to just insert them as part of
generating the regular expression.
2018-02-26 08:53:46 +00:00
Chris Hill-Scott
3e79ae1bfe Encapsulate domain list in class
Code shouldn’t be accessing this list directly; the class should provide
a sensible interface to the data.
2018-02-26 08:53:46 +00:00
Chris Hill-Scott
7c339b808e Refactor logic around gov domains into a class
This gives us space to add more logic in the future, and expose more
information than whether a given domain is/isn’t government.
2018-02-26 08:53:45 +00:00
Chris Hill-Scott
96aac519cc Extend user client to count users with permission
One of the things we need to know for a service to go live is whether
they have at least two users with the ‘manage service’ permission.

So this commit adds a method to the client to count how many users have
a given permission. We can do logic on this count later. But having the
counting done in the client feels like a cleaner separation of concerns.

Meant some refactoring of the way `service_id` is extracted from the
request, in order to make it easier to mock.
2018-02-26 08:53:45 +00:00
Chris Hill-Scott
56833b1d10 Add test for existing get users client method
Want to make sure it’s doing what I expect before I build another method
that calls through to it.
2018-02-26 08:53:45 +00:00
Chris Hill-Scott
51f0320aec Add API client method to count templates
When users request to go live we check stuff like:
- if they’ve added templates
- if they have email templates (then we can check their reply to
  address)

This commit adds a method to do this programatically rather than
manually.

We _could_ do this in SQL, but for page that’s used intermittently it
doesn’t feel worth the work/optimisation (and the client method is at
least in place now if we do ever need to lean on this code more
heavily).
2018-02-26 08:53:45 +00:00
Chris Hill-Scott
103a36a5da Hide ‘request to go live’ from API only users
Users who have the ‘manage API keys’ permission can see the settings
page. But they don’t have permission to request to go live.

At the moment they can still see the link, though clicking it gives them
a 403 error. This commit changes it so that they can’t see the link, and
tells them who they should speak to about going live (their manager).
2018-02-26 08:53:45 +00:00
Pete Herlihy
24f6b7246d Late entry with DVSA enforcement.... 2018-02-26 08:53:45 +00:00
Pete Herlihy
6abbc4b1d6 160-165 services and 65-66 orgs
4 Pembrokeshire services and 1 new Hackney service
2018-02-26 08:53:45 +00:00
Rebecca Law
803c195947 Removed edit permissions on the org users page.
Remove a user from organisation can be done later.
2018-02-23 17:27:28 +00:00
Rebecca Law
8f5b6491f3 Fix failing tests 2018-02-23 17:09:41 +00:00
chrisw
22bbc0d6d8 invite-team-members 2018-02-23 11:43:13 +00:00
kentsanggds
b7b25c7d16 Merge pull request #1894 from alphagov/ken-add-precompiled-letter-button
Add button to toggle precompiled letters on/off
2018-02-22 11:40:43 +00:00
Chris Hill-Scott
c4c54472df Merge pull request #1887 from alphagov/two-step-go-live
Split request to go live into two pages
2018-02-22 10:53:53 +00:00
Pete Herlihy
6672056e5a Merge pull request #1893 from alphagov/153-160-and-62-65
Up to 160 and 65 organisations
2018-02-21 18:43:57 +00:00
Ken Tsang
df41fcfdd0 Add button to toggle precompiled letters on/off 2018-02-21 17:41:19 +00:00
Pete Herlihy
f776d8eed7 Up to 160 and 65 organisations 2018-02-21 16:14:31 +00:00
Katie Smith
fbaf49e232 Merge pull request #1881 from alphagov/pyup-update-eventlet-0.22-to-0.22.1
Update eventlet to 0.22.1
2018-02-21 11:30:08 +00:00
Katie Smith
1483d0f521 Merge pull request #1882 from alphagov/pyup-update-pytest-xdist-1.22.0-to-1.22.1
Update pytest-xdist to 1.22.1
2018-02-21 11:30:01 +00:00
Katie Smith
91f8ce44fa Merge pull request #1890 from alphagov/pyup-update-pytest-3.4.0-to-3.4.1
Update pytest to 3.4.1
2018-02-21 11:29:52 +00:00
pyup-bot
65889eeba0 Update pytest from 3.4.0 to 3.4.1 2018-02-20 22:09:48 +00:00
Chris Hill-Scott
c5b51bc5ec Link to request to go live from the guidance
If we know what service someone has been using, we can take them to the
right place.
2018-02-20 12:36:39 +00:00
Chris Hill-Scott
4a6d0d08d4 Add grid column to go live checklist page
To keep the line length of the text nice and comfortable.
2018-02-20 12:31:19 +00:00
Chris Hill-Scott
8a857d2618 Move expectation-setting text to initial page
We have tickets from people asking how long the process takes. I suspect
that this is because they’re not getting to the bottom of the form
before they’re ready to go live.
2018-02-20 12:30:15 +00:00
Chris Hill-Scott
7dc278c959 Split into two pages
A lot of users aren’t reading or paying attention to the checklist on
the request to go live page. We think that we can get more people to
read it by putting it on its own page, where users won’t jump straight
to filling in the form.

This will, later on, let us make this page smarter by automatically
detecting if they’ve done the necessary things.
2018-02-20 12:28:32 +00:00
Chris Hill-Scott
4e2b4b5ac7 Rename endpoint
Every endpoint in this file is to do with a service. Putting service in
the name is redundant.
2018-02-20 12:27:53 +00:00