From 05687ca762e8ed2a6b551ec9202f396a11f9008a Mon Sep 17 00:00:00 2001 From: Frederick Muriuki Muriithi Date: Thu, 8 Jan 2026 09:29:18 -0600 Subject: View a job's details/summary. --- uploader/background_jobs.py | 16 ++++++ .../templates/background-jobs/job-summary.html | 62 ++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 uploader/templates/background-jobs/job-summary.html diff --git a/uploader/background_jobs.py b/uploader/background_jobs.py index da3c8ed..64d55e9 100644 --- a/uploader/background_jobs.py +++ b/uploader/background_jobs.py @@ -141,3 +141,19 @@ def list_jobs(): conn, session.user_details()["user_id"]), display_datetime=lambda val: datetime.datetime.fromisoformat( val).strftime("%A, %d %B %Y at %H:%M %Z")) + + +@background_jobs_bp.route("/summary/") +@require_login +def job_summary(job_id: uuid.UUID): + """Provide a summary for completed jobs.""" + with sqlite3.connection(app.config["ASYNCHRONOUS_JOBS_SQLITE_DB"]) as conn: + try: + job = jobs.job(conn, job_id, fulldetails=True) + status = job["metadata"]["status"] + + if status in ("completed", "error"): + return render_template("background-jobs/job-summary.html", job=job) + return redirect(url_for("background-jobs.job_status", job["job_id"])) + except JobNotFound as _jnf: + return render_template("jobs/job-not-found.html", job_id=job_id) diff --git a/uploader/templates/background-jobs/job-summary.html b/uploader/templates/background-jobs/job-summary.html new file mode 100644 index 0000000..fef89f2 --- /dev/null +++ b/uploader/templates/background-jobs/job-summary.html @@ -0,0 +1,62 @@ +{%extends "background-jobs/base.html"%} +{%from "flash_messages.html" import flash_all_messages%} + +{%block title%}Background Jobs{%endblock%} + +{%block pagetitle%}Background Jobs{%endblock%} + +{%block breadcrumbs%} +{{super()}} + +{%endblock%} + +{%block contents%} +{{flash_all_messages()}} + +
+

background jobs: summary

+ + + + + + + + + + + + + + + + + +
Job IDTypeStatus
{{job.job_id}}{{job.metadata["job-type"]}}{{job.metadata.status}}
+
+ +
+

Script Errors and Logging

+
{{job["stderr"]}}
+
+ +
+

Script Output

+
{{job["stdout"]}}
+
+{%endblock%} + + +{%block sidebarcontents%} +
+
What is this?
+
+
+

This page shows the results of running job '{{job.job_id}}'.

+
+{{super()}} +{%endblock%} -- cgit 1.4.1