about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2026-01-13 10:29:06 -0600
committerFrederick Muriuki Muriithi2026-01-13 10:29:06 -0600
commit225171b7ddf4387ab944c8c3ce781e716060ca08 (patch)
treec42558665247b2b2c4e58032deeb30847d391a9b
parent096fe9dfe3a582658c6bf9179b6c2662cc78711b (diff)
downloadgn-uploader-225171b7ddf4387ab944c8c3ce781e716060ca08.tar.gz
Make default datetime formatter for module.
-rw-r--r--uploader/background_jobs.py30
1 files changed, 16 insertions, 14 deletions
diff --git a/uploader/background_jobs.py b/uploader/background_jobs.py
index 61e57f7..3bfd354 100644
--- a/uploader/background_jobs.py
+++ b/uploader/background_jobs.py
@@ -25,6 +25,17 @@ background_jobs_bp = Blueprint("background-jobs", __name__)
 HandlerType = Callable[[dict], Response]
 
 
+def make_datetime_formatter(dtformat: str = "%A, %d %B %Y at %H:%M %Z") -> Callable[[str], str]:
+    """Make a datetime formatter with the provided `dtformat`"""
+    def __formatter__(val: str) -> str:
+        dt = datetime.datetime.fromisoformat(val)
+        return dt.strftime(dtformat.strip())
+
+    return __formatter__
+
+__default_datetime_formatter__ = make_datetime_formatter()
+
+
 def __default_error_handler__(job: dict) -> Response:
     return redirect(url_for("background-jobs.job_summary", job_id=job["job_id"]))
 
@@ -109,7 +120,7 @@ def job_status(job_id: uuid.UUID):
 
             return render_template("background-jobs/job-status.html",
                                    job=job,
-                                   display_datetime=make_datetime_formatter())
+                                   display_datetime=__default_datetime_formatter__)
         except JobNotFound as _jnf:
             return render_template("jobs/job-not-found.html", job_id=job_id)
 
@@ -126,15 +137,6 @@ def job_error(job_id: uuid.UUID):
             return render_template("jobs/job-not-found.html", job_id=job_id)
 
 
-def make_datetime_formatter(dtformat: str = "") -> Callable[[str], str]:
-    """Make a datetime formatter with the provided `dtformat`"""
-    def __formatter__(val: str) -> str:
-        dt = datetime.datetime.fromisoformat(val)
-        return dt.strftime(dtformat.strip() or "%A, %d %B %Y at %H:%M %Z")
-
-    return __formatter__
-
-
 @background_jobs_bp.route("/list")
 @require_login
 def list_jobs():
@@ -144,7 +146,7 @@ def list_jobs():
             "background-jobs/list-jobs.html",
             jobs=jobs.jobs_by_external_id(
                 conn, session.user_details()["user_id"]),
-            display_datetime=make_datetime_formatter())
+            display_datetime=__default_datetime_formatter__)
 
 
 @background_jobs_bp.route("/summary/<uuid:job_id>")
@@ -159,7 +161,7 @@ def job_summary(job_id: uuid.UUID):
             if status in ("completed", "error", "stopped"):
                 return render_template("background-jobs/job-summary.html",
                                        job=job,
-                                       display_datetime=make_datetime_formatter())
+                                       display_datetime=__default_datetime_formatter__)
             return redirect(url_for(
                 "background-jobs.job_status", job_id=job["job_id"]))
         except JobNotFound as _jnf:
@@ -182,7 +184,7 @@ def delete_single(job_id: uuid.UUID):
             if request.method == "GET":
                 return render_template("background-jobs/delete-job.html",
                                        job=job,
-                                       display_datetime=make_datetime_formatter())
+                                       display_datetime=__default_datetime_formatter__)
 
             if request.form["btn-confirm-delete"] == "delete":
                 jobs.delete_job(conn, job_id)
@@ -211,7 +213,7 @@ def stop_job(job_id: uuid.UUID):
             if request.method == "GET":
                 return render_template("background-jobs/stop-job.html",
                                        job=job,
-                                       display_datetime=make_datetime_formatter())
+                                       display_datetime=__default_datetime_formatter__)
 
             if request.form["btn-confirm-stop"] == "stop":
                 jobs.kill_job(conn, job_id)