about summary refs log tree commit diff
path: root/uploader/background_jobs.py
diff options
context:
space:
mode:
Diffstat (limited to 'uploader/background_jobs.py')
-rw-r--r--uploader/background_jobs.py46
1 files changed, 23 insertions, 23 deletions
diff --git a/uploader/background_jobs.py b/uploader/background_jobs.py
index 61e57f7..a71dd44 100644
--- a/uploader/background_jobs.py
+++ b/uploader/background_jobs.py
@@ -25,14 +25,27 @@ background_jobs_bp = Blueprint("background-jobs", __name__)
 HandlerType = Callable[[dict], Response]
 
 
-def __default_error_handler__(job: dict) -> Response:
-    return redirect(url_for("background-jobs.job_summary", job_id=job["job_id"]))
+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_handler__(_job):
+    return render_template("background-jobs/job-summary.html",
+                           job=_job,
+                           display_datetime=__default_datetime_formatter__)
 
 def register_handlers(
         job_type: str,
         success_handler: HandlerType,
         # pylint: disable=[redefined-outer-name]
-        error_handler: HandlerType = __default_error_handler__
+        error_handler: HandlerType = __default_handler__
         # pylint: disable=[redefined-outer-name]
 ) -> str:
     """Register success and error handlers for each job type."""
@@ -64,7 +77,7 @@ def register_job_handlers(job: dict):
         try:
             _error_handler = __load_handler__(metadata["error_handler"])
         except Exception as _exc:# pylint: disable=[broad-exception-caught]
-            _error_handler = __default_error_handler__
+            _error_handler = __default_handler__
         register_handlers(
             metadata["job-type"], _success_handler, _error_handler)
 
@@ -80,11 +93,7 @@ def handler(job: dict, handler_type: str) -> HandlerType:
     if bool(_handler):
         return _handler(job)
 
-    def __default_success_handler__(_job):
-        return render_template(
-            "background-jobs/default-success-page.html", job=_job)
-
-    return __default_success_handler__
+    return __default_handler__(job)
 
 
 error_handler = partial(handler, handler_type="error")
@@ -109,7 +118,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 +135,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 +144,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 +159,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 +182,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 +211,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)