Merge pull request #3658 from alphagov/use-scheduled-job-stats

Use new API endpoint for scheduled job stats
This commit is contained in:
Chris Hill-Scott
2020-10-06 12:00:38 +01:00
committed by GitHub
7 changed files with 105 additions and 32 deletions

View File

@@ -151,6 +151,12 @@ class Service(JSONModel):
return []
return ScheduledJobs(self.id)
@cached_property
def scheduled_job_stats(self):
if not self.has_jobs:
return {'count': 0}
return job_api_client.get_scheduled_job_stats(self.id)
@cached_property
def invited_users(self):
return InvitedUsers(self.id)

View File

@@ -74,6 +74,11 @@ class JobApiClient(NotifyAdminAPIClient):
reverse=True,
)
def get_scheduled_job_stats(self, service_id):
return self.get(
url=f'/service/{service_id}/job/scheduled-job-stats'
)
@cache.set('has_jobs-{service_id}')
def has_jobs(self, service_id):
return bool(self.get_jobs(service_id)['data'])

View File

@@ -3,16 +3,16 @@
{% from "components/show-more.html" import show_more %}
<div class="ajax-block-container">
{% if current_service.scheduled_jobs %}
{% if current_service.scheduled_job_stats.count %}
<h2 class="heading-medium heading-upcoming-jobs">
In the next few days
</h2>
<a class="govuk-link govuk-link--no-visited-state banner-dashboard" href="{{ url_for('.uploads', service_id=current_service.id) }}">
<span class="banner-dashboard-count">
{{ current_service.scheduled_jobs|length }}
{{ current_service.scheduled_job_stats.count }}
</span>
<span class="banner-dashboard-count-label">
{% if current_service.scheduled_jobs|length == 1 %}
{% if current_service.scheduled_job_stats.count == 1 %}
file waiting to send
{% else %}
files waiting to send
@@ -20,7 +20,7 @@
</span>
<span class="banner-dashboard-meta">
sending starts
{{ current_service.scheduled_jobs[-1].scheduled_for|format_datetime_relative }}
{{ current_service.scheduled_job_stats.soonest_scheduled_for|format_datetime_relative }}
</span>
</a>
{% endif %}