diff --git a/app/assets/sass/uswds/_uswds-theme-custom-styles.scss b/app/assets/sass/uswds/_uswds-theme-custom-styles.scss index ef7d279f7..533b54a2e 100644 --- a/app/assets/sass/uswds/_uswds-theme-custom-styles.scss +++ b/app/assets/sass/uswds/_uswds-theme-custom-styles.scss @@ -377,6 +377,15 @@ td.table-empty-message { } } +.job-table { + .usa-table { + thead th { + background-color: #d9e8f6; + color: #1b1b1b; + } + } +} + #template-list { max-height: 500px; overflow-y: auto; diff --git a/app/main/views/dashboard.py b/app/main/views/dashboard.py index 64ed5915f..a93c1680a 100644 --- a/app/main/views/dashboard.py +++ b/app/main/views/dashboard.py @@ -29,7 +29,7 @@ from app.utils.csv import Spreadsheet from app.utils.pagination import generate_next_dict, generate_previous_dict from app.utils.time import get_current_financial_year from app.utils.user import user_has_permissions - +from pprint import pprint @main.route("/services//dashboard") @user_has_permissions("view_activity", "send_messages") @@ -47,55 +47,29 @@ def service_dashboard(service_id): if not current_user.has_permissions("view_activity"): return redirect(url_for("main.choose_template", service_id=service_id)) - download_availability = [] - notifications = notification_api_client.get_notifications_for_service( service_id=service_id, )["notifications"] - notificaton_job_ids = [ - notification["job"]["id"] - for notification in notifications - if "job" in notification - ] + job_response = job_api_client.get_jobs(service_id) - jobs = [] - - for notificaton_job_id in notificaton_job_ids: - job_data = job_api_client.get_job(service_id, notificaton_job_id)["data"] - if job_data: - jobs.append(job_data) service_data_retention_days = 7 - download_availability = [] - for job in jobs: - message_type = job.get("template_type") - if message_type is not None: - service_data_retention_days = current_service.get_days_of_retention( - message_type - ) - time_left = get_time_left(job["created_at"]) - download_link = ( - url_for( - ".view_job_csv", - service_id=current_service.id, - job_id=job["id"], - ), - ) - - download_availability.append( - { + jobs = [] + for job in job_response['data']: + job_info = { "job_id": job["id"], - "time_left": time_left, - "download_link": download_link, + "time_left": get_time_left(job["created_at"]), + "download_link": url_for(".view_job_csv", service_id=current_service.id, job_id=job["id"]), "notification_count": job["notification_count"], - } - ) + } + jobs.append(job_info) return render_template( "views/dashboard/dashboard.html", updates_url=url_for(".service_dashboard_updates", service_id=service_id), partials=get_dashboard_partials(service_id), notifications=notifications, - download_availability=download_availability, + jobs=jobs, + job_response = job_response, service_data_retention_days=service_data_retention_days, ) diff --git a/app/templates/views/dashboard/dashboard.html b/app/templates/views/dashboard/dashboard.html index 7756c8a09..1ad2632ca 100644 --- a/app/templates/views/dashboard/dashboard.html +++ b/app/templates/views/dashboard/dashboard.html @@ -30,7 +30,6 @@ {{ ajax_block(partials, updates_url, 'template-statistics') }}

Recent Batches

-
{% call(item, row_number) list_table( notifications, @@ -38,10 +37,9 @@ caption_visible=False, border_visible=True, empty_message='No batched job messages found  (messages are kept for {} days)'.format(service_data_retention_days)|safe, - field_headings=['File Name','Template','Time Sent', 'Sender', '# of Recipeints'], + field_headings=['File Name','Template','Time Sent', 'Sender', '# of Recipeints', "Report"], field_headings_visible=False ) %} - {{ download_availability }} {% if item.job.original_file_name and item.job.id and item.template %} {% call row_heading() %} {{ item.job.original_file_name if item.job.id else '' }} @@ -58,11 +56,19 @@ {% call row_heading() %} {{ item.created_by.name }} {% endcall %} + {% set availability = jobs|selectattr('job_id', 'equalto', item.job.id)|first %} {% call row_heading() %} - {% set availability = download_availability|selectattr('job_id', 'equalto', item.job.id)|first %} - {% if availability %} - {{ availability.notification_count}} - {% endif %} + {% if availability %} + {{ availability.notification_count}} + {% endif %} + {% endcall %} + {% call row_heading() %} + {% if availability and availability.time_left != "Data no longer available" %} + {{ "Download" if item.job.original_file_name else '' }} + {{ availability.time_left }} + {% elif availability %} + {{ availability.time_left }} + {% endif %} {% endcall %} {% endif %} {% endcall %}