Commit Graph

3593 Commits

Author SHA1 Message Date
Katie Smith
1d1973050d Stop live services requesting to go live
Live services shouldn't be able to request to go live again. Once a
service is live we remove the option to go live from the Settings page,
but we still link to the page to request to go live from other places
e.g. the 'Get started' page. As a result, we've seen some services make
another request to go live when their service has already been live for
months - this change will stop that from happening.
2020-11-09 14:00:52 +00:00
Katie Smith
247e7c2d93 Stop checking query string for filename when sending a job
We look for `original_file_name` in the metadata now. Initially we were
still checking the query string too, but now that the change to add the
filename to the metadata has been deployed for a while there shouldn't
be any cases of the filename still being in a query string.

Since the `original_file_name` is not being added to the metadata in
`.check_messages` (it has happened earlier in the process) a few tests
are no longer needed.
2020-11-05 10:03:21 +00:00
Katie Smith
18e4e86565 Stop checking query string for filename if uploading contact list
The code was looking for `original_file_name` in the metadata for a
contact list, or the query string if it wasn't in the metadata. Now that
the change to use the metadata for the file name has been deployed for a
while e can stop looking in the query string for the
`original_file_name`.
2020-11-05 10:03:21 +00:00
Tom Byers
36708ccad0 Merge pull request #3700 from alphagov/fix-template-list-item-focus-style
Fix template list item focus style
2020-10-30 15:58:35 +00:00
Katie Smith
6940291c96 Put filename in metadata when sending via a CSV
When sending from an uploaded CSV `.send_messages` now puts the filename
in the metadata. It previously used the query string to pass the
filename to `.check_messages`, where it can be lost.
2020-10-29 13:53:50 +00:00
Katie Smith
a6c103841e Check metadata for file name when sending from contact list
The `.send_from_contact_list` function redirected to `.check_messages`
with `original_file_name` in the query string. Contact lists already
have `original_file_name` as part of their metadata, so we can stop
sending it in the query string and use the metadata instead.
2020-10-29 13:53:50 +00:00
Katie Smith
e07651ed80 Use metadata to store filename when uploading contact list
We were passing `original_file_name` from the `.upload_contact_list`
view function to the `.check_contact_list` view function as a query
param. We now store it in the metadata instead. `.check_contact_list`
still checks for `original_file_name` in the query string if it's not in
the metadata - this is necessary until the code has been deployed for a
few days and we can be sure that there are no contact lists that are
mid-way through the upload stage.
2020-10-29 13:53:50 +00:00
Chris Hill-Scott
b6e100448d Merge pull request #3687 from alphagov/remove-custom-getattr
Remove custom `getattr` implementation from JSONModel
2020-10-28 10:46:13 +00:00
Chris Hill-Scott
38e9e84f77 Raise exception when overriding a custom property
If a subclass of `JSONModel` defines a property then we shouldn’t try
to override it with the value from the underlying dictionary.

Rather than silently fail we should raise an exception because it will
help keep our list of `ALLOWED_PROPERTIES` nice and tidy.
2020-10-28 10:08:45 +00:00
Tom Byers
2d5a165a2d Swap headings for list items in template list
I'm mainly making this change because it's useful
for the CSS that styles the hint text when the
link is focused for the link to have no parent
container.

That being said, there isn't really enough content
underneath these headings to justify them as it is.
I've wrapped them in a list instead because:
- they're structured like a list
- we already called them a `template-list`

This commit also replaces the `message-type` class
on the paragraph below where the headings went,
for consistency. It also removes the CSS for that
class as I couldn't find anywhere else that used
it now.
2020-10-27 21:31:08 +00:00
Chris Hill-Scott
cc04a924d0 Make list of areas on dashboard use full width
When the list of areas is restricted to half the width of the page it
starts to look pretty higgledy-piggledy when you have lots of areas or
areas with very long names.

To do this I’ve ripped out the table markup in favour of headings,
paragraphs and lists. Probably pros and cons for each, but it was really
hard to do the layout with the content in a table.
2020-10-27 15:19:10 +00:00
Chris Hill-Scott
e2e04b51fc Sort broadcasts by start time
For emails and text messages we sort by the time the user (or API) sent
them.

This makes sense for broadcasts too, since most users will receive the
alert within seconds of it being broadcast.

For alerts that haven’t started yet we can sort by `updated_at`, which
is when the user preparing the broadcast submitted it for approval.
2020-10-27 13:12:46 +00:00
Chris Hill-Scott
74e92e708e Add status to alerts pending approval
Now that pending alerts aren’t in their own section there’s nothing to
label them as pending. So this commit replaces the extra metadata we
show for a pending alert (the name of the person who created it, which
was only ever a reckon) with an explicit label that says it’s waiting
for approval.
2020-10-27 13:12:36 +00:00
Chris Hill-Scott
24bafba29c Combine current and pending broadcasts
Splitting the dashboard into multiple sections was confusing, and people
sometimes mistook the headings as labels, especially when a section was
empty. It just wasn’t clear what the hierarchy of the page was.

This commit combines the current and pending broadcasts into one list
on the dashboard. Previous broadcasts have already moved to their own
page.
2020-10-27 13:12:25 +00:00
Chris Hill-Scott
725df2e7fa Add test for back link on view broadcast page 2020-10-26 11:06:27 +00:00
Chris Hill-Scott
eec4602efc Redirect to correct endpoint based on state
If you refresh the page on a current broadcast while someone has
cancelled it you’ll see the wrong navigation item selected. This commit
adds redirects to take you to the correct endpoint in these edge cases.
2020-10-26 10:50:09 +00:00
Chris Hill-Scott
b54d49196b Ensure correct selected nav item on broadcast page
Once a broadcast has been submitted for approval it either lives on the
‘Current alerts’ or ‘Previous alerts’ page, depending on where it is
in its lifecycle.

Therefore when clicking into a broadcast from one of those pages the
same navigation item should remain selected.

Because we select the navigation items based on the request endpoint,
this means we need an endpoint for each navigation page, even if the
content of the pages will be the same in both cases.

This commit adds the two new end points, removes the old, single
endpoint and updates links to point to the new endpoint.
2020-10-26 10:50:09 +00:00
Tom Byers
92b735f6e4 Merge pull request #3694 from alphagov/remove-issue-from-accessibility-statement
Remove issue from accessibility statement
2020-10-23 13:37:41 +01:00
Chris Hill-Scott
57fc209f44 Merge pull request #3690 from alphagov/set-message-limit
Remove the `upload_letters` permission
2020-10-23 12:27:28 +01:00
Chris Hill-Scott
43b4acf1f9 Allow platform admins to change rate limit
One less thing we have to go into the database to do, and remember to
manually clear the cache for after.
2020-10-23 12:05:45 +01:00
Tom Byers
1d7e4aa942 Add test for accessibility statement last review
This is a proposal of a way to test that changes
to this page include updates to the 'last
reviewed' date, if needed.
2020-10-23 11:23:41 +01:00
David McDonald
922d43ea1a Update tests/app/notify_client/test_service_api_client.py
Co-authored-by: Chris Hill-Scott <me@quis.cc>
2020-10-21 11:18:09 +01:00
David McDonald
2921c7302c Fix incorrect redis key deleting
We were trying to delete the old 'template-{template-id}' keys but
should have been deleting the new keys which have the service id as part
of the key name. This was causing the cache to not be correctly purged
when we did things like update sender names or set defaults. This should
fix it.
2020-10-21 11:14:23 +01:00
Chris Hill-Scott
882baadfe3 Merge pull request #3681 from alphagov/adjust-hierarchy-broadcast-page
Re-order hierarchy of information when viewing a single broadcast
2020-10-20 12:06:57 +01:00
Chris Hill-Scott
f549168b5e Remove the upload_letters permission
Every service has it now, and we haven’t had any services ask to toggle
it off again.
2020-10-20 11:30:08 +01:00
Chris Hill-Scott
fcd34ef989 Merge pull request #3689 from alphagov/set-message-limit
Allow platform admins to change daily message limit
2020-10-20 10:34:58 +01:00
Chris Hill-Scott
268929a093 Allow platform admins to change daily message limit
One less thing we have to go into the database to do, and remember to
manually clear the cache for after.
2020-10-19 17:44:32 +01:00
Chris Hill-Scott
9b7357025c Make custom data retention look a bit nicer
This should make it easier to see what’s set without having to click
into the table.
2020-10-19 16:56:36 +01:00
Chris Hill-Scott
89c63e3243 Remove custom getattr implementation from JSONModel
We wrote custom `__getattr__` and `__getitem__` implementation to make
it easier to find code that was accessing fields in the dictionary that
we weren’t aware of. See this commit for details:
b48305c50d

Now that no view-layer code accesses the service dictionary directly we
don’t need to support this behaviour any more. By removing it we can
make the model code simpler, and closer to the `SerialisedModel` it
inherits from.

It still needs some custom implementation because:
- a lot of our test fixtures are lazy and don’t set up all the expected
  fields, so we need to account for fields sometimes being present in
  the underlying dictionary and sometimes not
- we often implement a property that has the same name as one of the
  fields in the JSON, so we have to be careful not to try to override
  this property with the value from the underlying JSON
2020-10-19 15:52:51 +01:00
Chris Hill-Scott
0e39208546 Associate start time with live
Start time is much more important than end time.
2020-10-19 14:29:50 +01:00
Chris Hill-Scott
ba535523df Move end time to bottom of page
End time is less important than the status of the broadcast, or when it
was started (eg when it was received by most people in the area).
2020-10-19 14:29:09 +01:00
Chris Hill-Scott
6937e06ad5 Move the ‘who did what’ stuff to the bottom
The most important part of the broadcast is what content was sent where
(and when).

This commit reduces the priority of the ‘meta’ information, like who
prepared and approved the broadcast. I also think that the ‘end’ time is
a lot less important than the start time, since most people will receive
the alert at or near to the start time.
2020-10-19 14:25:42 +01:00
Chris Hill-Scott
274eff5f25 Merge pull request #3680 from alphagov/show-broadcast-content
Show preview of content for broadcast messages and templates
2020-10-19 14:22:41 +01:00
Chris Hill-Scott
43a27676cb Remove the styleguide
The idea was that this would be a place to document all the design
patterns used in Notify. However it hasn’t been kept up to date, and,
looking at the `git blame`[1] no new patterns have been added for 5
years.

I think it’s better to get rid of it than have to keep maintaining
something which is inaccurate.

1. 64aa0d359c/app/templates/views/styleguide.html
2020-10-16 10:14:23 +01:00
Chris Hill-Scott
e2f16e414d Style areas on dashboard the same as alert preview
Our style for areas is pale blue background with black keylines or bold
black text.

This commit makes the display of area names on the dashboard consistent
with that visual style.

This also means that we’re not truncating the list of areas, which is
appropriate because no one area is more important than any of the
others.
2020-10-14 13:22:00 +01:00
Chris Hill-Scott
5c9a886edc Preview content as hint for broadcast templates
Broadcast services only have broadcast templates. But we show the
template type under the name of the template. This is redundant. It
would be better to preview the content of the template instead.

This then makes the templates page consistent with the dashboard.

Depends on:
- [ ] https://github.com/alphagov/notifications-api/pull/2996
2020-10-14 13:21:19 +01:00
Chris Hill-Scott
8dae4f771a Show the content of the alert on the dashboard
The content is as important as which areas you’ve sent the broadcast to.
2020-10-14 13:21:19 +01:00
Chris Hill-Scott
0cd08a94ff Rename dashboard to ‘current alerts’
The dashboard for normal services is quite general, because it tells
you a bit about channels, templates and spend.

What is now the dashboard for broadcast services is much more specific,
therefore less like a dashboard. We can reflect this by giving it a more
specific name. This should reduce the amount of navigation surfing
people need to do in order to find the thing they’re looking for.
2020-10-13 14:47:27 +01:00
Chris Hill-Scott
698f98389c Remove previous broadcasts from the dashboard
Since they have their own page now they don’t need to also appear on the
dashboard.
2020-10-13 14:47:10 +01:00
Chris Hill-Scott
f0220fa9fb Make a separate page for previous alerts
Previous alerts are much less important than ones that are live or
waiting for approval.

Therefore we can make the dashboard more focused by moving previous
alerts to their own page.
2020-10-13 14:45:08 +01:00
Chris Hill-Scott
8ff9ec6d97 Replace generated content with proper heading
Brings in https://github.com/alphagov/notifications-utils/pull/797 but
adapts the CSS so nothing changes visually
2020-10-12 15:55:30 +01:00
Chris Hill-Scott
3f338d45ca Rename CSS classes for consistency
This prefixes everything to do with areas/the map with `area-list`, so
from looking at one element you know which `.scss` file will contain the
relevant code.
2020-10-12 15:53:09 +01:00
Chris Hill-Scott
3eb97f76b8 Merge pull request #3676 from alphagov/broadcast-includes-content
Add content property to broadcast message model
2020-10-12 15:29:48 +01:00
David McDonald
895b6bcc9e Merge pull request #3674 from alphagov/remove-test-routes
Remove `test/step-` routes
2020-10-12 14:25:31 +01:00
Chris Hill-Scott
974fb8c6c1 Accept content as keyword argument 2020-10-12 14:18:33 +01:00
Chris Hill-Scott
d8b265b0ca Add comments to make test data clearer
It’s not clear where 103 is coming from unless you know that the code is
doing the slightly unintuitive thing of displaying the max of all return
values.
2020-10-12 14:14:12 +01:00
Pea M. Tyczynska
b60d25da67 Merge pull request #3670 from alphagov/show-broadcast-tour-when-password-reset
Take user to page they are meant to visit in various sign-in flow scenarios
2020-10-12 12:27:37 +01:00
Pea Tyczynska
6578719103 Test next redirects with realistic URL
This change has been made following PR review, to ensure
that special signs are transformed correctly when passing
through the next URL.
2020-10-12 12:01:39 +01:00
David McDonald
7d3a4e6085 Remove test/step- routes
We don't need these anymore as all users will use the `one-off/step`
routes.

This has mostly involved tidying up the tests which are still a little
disorganised and not as good as I'd like but it's a step in the right
direction.

More refactoring is still possible to the routes, it may come in a later
PR if I have time.
2020-10-09 17:36:09 +01:00
David McDonald
99880fd672 Merge pull request #3668 from alphagov/use-one-off-route
When sending to yourself use 'one-off' rather than 'test' routes
2020-10-09 16:02:01 +01:00