Commit Graph

73 Commits

Author SHA1 Message Date
Chris Hill-Scott
8ca7832541 Filter test messages from jobs on the dashboard
While test messages technically have a file and are a job, there’s not
much reason to ever revisit them. So all they end up doing is cluttering
the dashboard and making it harder to find the actual files you’ve
actually uploaded from your computer.

So this commit:

- abstracts the name of test messages into config
- filters out any files whose filename represents a test message
- adds some more thorough tests for the jobs on the dashboard
2016-06-20 09:31:20 +01:00
Chris Hill-Scott
56d9c29e91 Highlight failing jobs on the dashboard
> When we have jobs that have over 3% failure rates we should highlight
> those so that peoples attention is drawn to deal with the failure.
>
> They would then go to the job view to see what the details are where
> they could filter by failure, but that's a different story...
>
> This is just about calculating and highlighting those that need their
> attention.

— https://www.pivotaltracker.com/story/show/121206123

This commit:

- calculates the failure rate for each job
- makes jobs with a failure rate of > 3% go red on the dashboard
2016-06-15 10:25:48 +01:00
Leo Hemsted
f2cca024dd Merge pull request #619 from alphagov/platform-admin-stats
Headline stats on the platform admin page
2016-05-31 13:53:21 +01:00
Leo Hemsted
83b151982e add stats boxes to platform admin page
moved a couple of stats summary functions from dashboard to a shared statistics_utils file
2016-05-31 12:17:06 +01:00
Chris Hill-Scott
16d83faa72 Put uploaded files on the dashboard
This commit depends on and uses the data returned by:
- [x] https://github.com/alphagov/notifications-api/pull/345
- [x] https://github.com/alphagov/notifications-api/pull/347
- [x] https://github.com/alphagov/notifications-admin/pull/612

It puts the last 5 jobs on the dashboard. This should be changed to all the jobs
from the last 7 days when that parameter is available.

It also:
- links to the jobs page
- makes the numbers on the jobs page consistent with the dashboard
- makes the numbers on an individual job consistent with the appearance of the
  dashboard
2016-05-26 09:00:00 +01:00
Chris Hill-Scott
c41944080c Make the tour interactive
_The code for this is quite hacky and light on tests. But I’d really like to get
it in the app for the research tomorrow to see how well the feature works._

This commit changes the tour from being a set of static screens to some help
which guides you through the process of sending your first test message.

The theory behind this is that what users are really struggling with is the
concept of a variable, rather than the relationship between the placeholders and
the column headers. And like learning to program, the best way to learn is by
taking an example and modifying it to your own needs.

This means that when someone adds their first service we set them up an
example email template and an example text message template. Then there is a
guided, three step process where _all_ the user can do is send a test message to
themselves.

Once the message is sent, the user still has the example templates which they
can edit, rather than having to remember what they’re supposed to be doing.
2016-05-25 13:14:09 +01:00
Adam Shimali
25170e7e42 Removed unused imports 2016-05-18 14:39:06 +01:00
Chris Hill-Scott
1b8236f5f8 Make template usage on dashboard easier to scan
The dashboard looked a bit table-y. This commit makes four main changes:

- show a bar chart (drawn in CSS) for template usage (only shown if
  you’ve used more than one template recently)
- only break down template usage by template name, not template type
  (because that’s happening with the big numbers)
- change the style of the ‘show more’ links under each section so that
  they are all consistent, and a little less busy (one less keyline)
- remove the ‘recent templates‘ title so that the first two sections of
  the page group under ‘in the last 7 days’
2016-05-13 09:59:41 +01:00
Rebecca Law
9232ab51d5 Merge pull request #554 from alphagov/add-created_by-to-jobs
Update the jobs and activity page to show the user that created the job.
2016-05-11 14:55:29 +01:00
Rebecca Law
46d5065297 Update the jobs and activity page to show the user that created the job. 2016-05-11 11:57:31 +01:00
Nicholas Staples
af500a96e7 Update all dates to use utc, only in the template is it converted to british time. 2016-05-11 11:20:45 +01:00
Chris Hill-Scott
50427ecd3f Add a page to show delivery rates week-by-week
Implements
https://github.com/alphagov/notifications-api/pull/286

Will always show weeks as Monday to Sunday.
2016-05-05 10:56:20 +01:00
Chris Hill-Scott
00030bc254 Add usage to the dashboard
Takes the number of emails and SMS fragments sent from:
https://github.com/alphagov/notifications-api/pull/273

Using these numbers it’s possible to show:
- how much of your allowance is left
- or how much you have spent

For now the allowance and rates are hard coded.

Only for users that have manage service.
2016-05-03 11:06:12 +01:00
Chris Hill-Scott
d1dec6d5a0 Default aggregate statistics to 0, not None
If they API returns no statistics for a given time period we should
assume that this is equivalent to 0. This means that the template can
always rely on the dictionary having the same keys.
2016-05-03 09:18:24 +01:00
Chris Hill-Scott
5572058e50 Merge pull request #518 from alphagov/dashboard-stats-all-aligned
Count only requested and failed messages on dashboard
2016-04-28 13:08:29 +01:00
Chris Hill-Scott
876a0781fe Requested, delivered, and failed messages on dash
Requested, delivered and failed are the three states stored in the
notification statistics table. They are not discrete, eg a message can
be counted in delivered and failed.

`requested` is incremented *when a notification is created*, and has no
chance of being incremented twice for the same notification.

The template statistics are incremented *when a notification is created
only*.

Therefore the only way to make the numbers line up is to count:
- messages sent as being `requested`
- failure rate being `failed`/`requested` *not*
  `failed`/`failed`+`delivered`
2016-04-28 08:59:36 +01:00
Adam Shimali
266a76adec Add events to temp history page for story sign off 2016-04-27 17:24:44 +01:00
Chris Hill-Scott
00507fc7be Show sent, not pending numbers on the dashboard
The dashboard should only talk about notifications that are *successful* or
*failed*. It should not count notifications that are still queued.

This will stop:
- a situation like ‘0 emails, 14.1% failed’
- the big numbers and the template statistics numbers not adding up to
  the same total
2016-04-27 12:31:52 +01:00
Chris Hill-Scott
22ebc2ece5 Make permissions for AJAX dashboard backend match
If you don’t have permission to see the HTML dashboard, you shouldn’t be
able to see the JSON one.
2016-04-25 11:23:45 +01:00
Adam Shimali
786ce0e071 This is intended to be a temporary solution to allow product
owner to see history records until proper design is done for
viewing histiry.
2016-04-21 18:25:18 +01:00
Chris Hill-Scott
09491e880e Show template usage for all time on it’s own page
> We show the last weeks template usage on the dashboard, which is
> great, but if you're looking for longer term trends, you're out of
> luck...

> So, let's let you see more on a more detailed page (linked from the
> dashboard). Initially this should just show you all templates that you
> have used ever and the count for each. Order same as dashboard, most
> popular first.

https://www.pivotaltracker.com/story/show/117614585
2016-04-20 15:31:42 +01:00
Chris Hill-Scott
312a903e65 Limit templates usage on dashboard to last 7 days
Previous the table of templates on the dashboard was for all time.
This commit uses the `limit_days` parameter of the API endpoint to only
show template usage from the last 7 days, aligning with the big numbers
shown above.
2016-04-20 15:02:29 +01:00
Chris Hill-Scott
8d6eb0985b Merge pull request #471 from alphagov/craig-david
Show the last 7 days of statistics on the dashboard
2016-04-20 11:13:51 +01:00
Chris Hill-Scott
be7c7cebbc Limit big numbers to the last 7 days
Implements and depends on:
- https://github.com/alphagov/notifications-api/pull/241
2016-04-19 17:10:39 +01:00
Chris Hill-Scott
5bf0d8fe70 Show all statistics fetched on the dashboard
We want to align all our stats to be for the last 7 days.

This means summing up the stats response from the API to make the Big
Number. Previously the big number was counting sent notifications as
successful. This commit changes it to only look at delivered
notifications.

Right now, the API doesn’t have a way of filtering to only show the last
7 days. So for the moment the dashboard will show statistics for all
time.

The upshot of this is that we can link from the dashboard to the
activity page when there are failures.
2016-04-19 15:57:53 +01:00
Chris Hill-Scott
b75ab7c3df Make new service current service on first use
When you add a new service, it’s probably the one you want to do stuff
with.

When you get invited, the service you’ve been invited to is probably the
one you want to use.

This commit adds the ID of the new service or service you’ve been
invited to to the session.
2016-04-19 11:04:00 +01:00
Chris Hill-Scott
37f341e757 Make tour work for non-logged-in users
There’s no content in the tour that’s specific to a service. And since
we can now take a pretty good guess at what service you last used, or
which service we should send you to if you only have one service,
there’s no need to make the URLs for the tour service-specific.

This also means that you don’t need to be logged in to see the tour
pages, and we have no good reason to only restrict these pages to users
with accounts.

https://www.pivotaltracker.com/story/show/116960703
2016-04-19 10:38:16 +01:00
Chris Hill-Scott
2a03cd3952 Merge pull request #431 from alphagov/sort-template-stats
Sort template stats by usage
2016-04-13 16:15:33 +01:00
Nicholas Staples
a6d1c5b693 Download CSV option now available.
App is updated to use the rebased db.
2016-04-12 15:38:02 +01:00
Chris Hill-Scott
4568c0e5ab Sort template stats by usage
Template stats should show the most-used template first.

This commit:
- re-writes the `aggregate_usage` function to use `itertools.groupby`,
  which can do aggregation, and can return data in a structure that’s
  easy to sort on
- uses generators so that we’re not keeping lots of rows of template
  stats in memory

https://www.pivotaltracker.com/story/show/117348893
2016-04-12 12:03:52 +01:00
Adam Shimali
d7c59fa8d7 Aggregation of template stats in admin app.
Individual templates stats items fetched from admin.
2016-04-07 10:55:21 +01:00
Chris Hill-Scott
686493ed8f When a user accepts an invite, show them the tour
It’s jarring to be sent right into the dashboard.

We think the tour makes things less jarring.
2016-04-05 16:21:06 +01:00
Adam Shimali
dc7964efd7 Fix service id bug in template. Use current_service instead 2016-04-05 14:12:18 +01:00
Adam Shimali
159fe60c1a Template statistics now surfaced on dashboard.
Job list removed.

Template statistics retrieved at same time as
notification stats.
2016-04-05 11:47:24 +01:00
Nicholas Staples
c31c55666b Added current_service to flask context and template context.
Fix all tests and conflicts.

Removed comment line.
2016-04-04 17:01:20 +01:00
Nicholas Staples
0b2eeb19c5 Fix sent today bug and removed unused file.
Code quality fix.
2016-03-30 12:12:31 +01:00
Rebecca Law
f3507af006 Merge pull request #358 from alphagov/fix-permissions
Add view_activity permissions
2016-03-30 11:36:49 +01:00
Rebecca Law
c99df69025 Merge branch 'master' into fix-permissions
Conflicts:
	app/main/views/jobs.py
	tests/app/main/views/test_manage_users.py
2016-03-30 10:36:55 +01:00
Nicholas Staples
ff9d3d72ad Fixed merge conflicts with master.
Code quality fixes.
2016-03-30 10:26:01 +01:00
Nicholas Staples
644336b151 Merge with master. 2016-03-29 22:50:40 +01:00
Rebecca Law
b79901fe28 With the addition of has_permissions on the dashboard, jobs, and manage_users pages a platform admin user or a users with no permissions on the service could no longer see the page.
A new permission has been added, view_activity, to resolve this issue.
Another pull request in notifications-admin will be required to update all users with a default permission of view_activity.
2016-03-29 13:23:36 +01:00
NIcholas Staples
faaedb318d Merge pull request #338 from alphagov/service_user_permission
Functionality added to existing endpoint without a user_has_permissio…
2016-03-23 14:48:10 +00:00
Nicholas Staples
961ed6b362 Functionality added to existing endpoint without a user_has_permission decorator, tests passing.
Fix tests.
2016-03-23 14:26:12 +00:00
Chris Hill-Scott
45ea12e13f Improve display of failure rates
https://www.pivotaltracker.com/story/show/116052359

- add absolute numbers for failures
- make percentages accurate to 1 decimal place (50.0%)
- make error colour appear if failures go above 3.0%
- make error colour boolean (don’t interpolate between the colours)
2016-03-23 13:47:54 +00:00
Chris Hill-Scott
5c57f5b588 Make dashboard stats update dynamically
https://www.pivotaltracker.com/story/show/115874485

This uses the same component as on the jobs page to make a partial
section of the page update itself periodically.
2016-03-23 13:40:23 +00:00
Rebecca Law
643d047705 Fix division by zero 2016-03-17 14:40:08 +00:00
Chris Hill-Scott
b38ae08ad6 Put some statistics on the dashboard
This commit adds two new sections to the dashboard

1. A banner telling you about trial mode, including a count of how many messages
   you have left today, which is a restriction of trial mode

2. Panels with counts of how many emails and text messages have been sent in a
   day, plus the failure rates for each

It does **not**:
- link through to any further information about what trial mode is (coming
  later)
- link through to pages for the failure rates (coming later)
- change the ‘recent jobs’ section to ‘recent notifications’
2016-03-17 14:06:12 +00:00
Martyn Inglis
71abecf34c Merge branch 'master' of github.com:alphagov/notifications-admin 2016-03-14 17:06:19 +00:00
Martyn Inglis
6c5f9f4cb2 Fix ordering of jobs 2016-03-14 16:50:02 +00:00
Rebecca Law
f63a85d003 Fix bug in error handlers.
Correct spelling error
2016-03-11 10:16:06 +00:00