Merge pull request #916 from alphagov/readd-request-stat-to-job

Base ‘% complete’ on notifications requested
This commit is contained in:
Chris Hill-Scott
2016-08-31 11:40:03 +01:00
committed by GitHub
5 changed files with 22 additions and 15 deletions

View File

@@ -326,7 +326,7 @@ def get_job_partials(job):
'partials/jobs/notifications.html',
notifications=notifications['notifications'],
more_than_one_page=bool(notifications.get('links', {}).get('next')),
percentage_complete=(job['notifications_sent'] / job['notification_count'] * 100),
percentage_complete=(job['notifications_requested'] / job['notification_count'] * 100),
download_link=url_for(
'.view_job_csv',
service_id=current_service['id'],

View File

@@ -1,3 +1,4 @@
from collections import defaultdict
from notifications_python_client.base import BaseAPIClient
from app.notify_client import _attach_current_user
@@ -16,19 +17,15 @@ class JobApiClient(BaseAPIClient):
@staticmethod
def __convert_statistics(job):
results = {
'sending': 0,
'delivered': 0,
'failed': 0
}
if 'statistics' in job:
for outcome in job['statistics']:
if outcome['status'] in ['failed', 'technical-failure', 'temporary-failure', 'permanent-failure']:
results['failed'] += outcome['count']
if outcome['status'] in ['sending', 'pending', 'created']:
results['sending'] += outcome['count']
if outcome['status'] in ['delivered']:
results['delivered'] += outcome['count']
results = defaultdict(int)
for outcome in job['statistics']:
if outcome['status'] in ['failed', 'technical-failure', 'temporary-failure', 'permanent-failure']:
results['failed'] += outcome['count']
if outcome['status'] in ['sending', 'pending', 'created']:
results['sending'] += outcome['count']
if outcome['status'] in ['delivered']:
results['delivered'] += outcome['count']
results['requested'] += outcome['count']
return results
def get_job(self, service_id, job_id=None, limit_days=None, status=None):
@@ -42,6 +39,7 @@ class JobApiClient(BaseAPIClient):
job['data']['notifications_sent'] = stats['delivered'] + stats['failed']
job['data']['notifications_delivered'] = stats['delivered']
job['data']['notifications_failed'] = stats['failed']
job['data']['notifications_requested'] = stats['requested']
return job
params = {}
@@ -55,6 +53,7 @@ class JobApiClient(BaseAPIClient):
job['notifications_sent'] = stats['delivered'] + stats['failed']
job['notifications_delivered'] = stats['delivered']
job['notifications_failed'] = stats['failed']
job['notifications_requested'] = stats['requested']
return jobs