fix filtering to use processing_started time

This commit is contained in:
Beverly Nguyen
2025-08-07 18:31:53 -07:00
parent e8fb7117c0
commit 0a25d75146
3 changed files with 14 additions and 6 deletions

View File

@@ -57,7 +57,7 @@ def all_jobs_activity(service_id):
if limit_days: if limit_days:
jobs = job_api_client.get_page_of_jobs( jobs = job_api_client.get_page_of_jobs(
service_id, page=page, limit_days=limit_days service_id, page=page, limit_days=limit_days, use_processing_time=True
) )
else: else:
jobs = job_api_client.get_page_of_jobs(service_id, page=page) jobs = job_api_client.get_page_of_jobs(service_id, page=page)
@@ -109,8 +109,13 @@ def all_jobs_activity(service_id):
def handle_pagination(jobs, service_id, page): def handle_pagination(jobs, service_id, page):
if page is None: if page is None:
abort(404, "Invalid page argument ({}).".format(request.args.get("page"))) abort(404, "Invalid page argument ({}).".format(request.args.get("page")))
url_args = {}
if request.args.get("filter"):
url_args["filter"] = request.args.get("filter")
prev_page = ( prev_page = (
generate_previous_dict("main.all_jobs_activity", service_id, page) generate_previous_dict("main.all_jobs_activity", service_id, page, url_args)
if page > 1 if page > 1
else None else None
) )
@@ -119,7 +124,7 @@ def handle_pagination(jobs, service_id, page):
total_pages = (total_items + page_size - 1) // page_size total_pages = (total_items + page_size - 1) // page_size
has_next_link = jobs.get("links", {}).get("next") is not None has_next_link = jobs.get("links", {}).get("next") is not None
next_page = ( next_page = (
generate_next_dict("main.all_jobs_activity", service_id, page) generate_next_dict("main.all_jobs_activity", service_id, page, url_args)
if has_next_link and total_items > 50 and page < total_pages if has_next_link and total_items > 50 and page < total_pages
else None else None
) )

View File

@@ -32,12 +32,14 @@ class JobApiClient(NotifyAdminAPIClient):
return job return job
def get_jobs(self, service_id, *, limit_days=None, statuses=None, page=1): def get_jobs(self, service_id, *, limit_days=None, statuses=None, page=1, use_processing_time=False):
params = {"page": page} params = {"page": page}
if limit_days is not None: if limit_days is not None:
params["limit_days"] = limit_days params["limit_days"] = limit_days
if statuses is not None: if statuses is not None:
params["statuses"] = ",".join(statuses) params["statuses"] = ",".join(statuses)
if use_processing_time:
params["use_processing_time"] = "true"
job = self.get(url=f"/service/{service_id}/job", params=params) job = self.get(url=f"/service/{service_id}/job", params=params)
return job return job
@@ -61,12 +63,13 @@ class JobApiClient(NotifyAdminAPIClient):
if job["job_status"] != JobStatus.CANCELLED if job["job_status"] != JobStatus.CANCELLED
) )
def get_page_of_jobs(self, service_id, *, page, statuses=None, limit_days=None): def get_page_of_jobs(self, service_id, *, page, statuses=None, limit_days=None, use_processing_time=False):
return self.get_jobs( return self.get_jobs(
service_id, service_id,
statuses=statuses or self.NON_SCHEDULED_JOB_STATUSES, statuses=statuses or self.NON_SCHEDULED_JOB_STATUSES,
page=page, page=page,
limit_days=limit_days, limit_days=limit_days,
use_processing_time=use_processing_time,
) )
def get_immediate_jobs(self, service_id): def get_immediate_jobs(self, service_id):

View File

@@ -30,7 +30,7 @@
</li> </li>
{% else %} {% else %}
<li class="usa-pagination__item"> <li class="usa-pagination__item">
<a class="usa-pagination__button" href="?page={{ page }}"> <a class="usa-pagination__button" href="?page={{ page }}{% if request.args.get('filter') %}&filter={{ request.args.get('filter') }}{% endif %}">
{{ page }} {{ page }}
</a> </a>
</li> </li>