diff options
Diffstat (limited to 'uploader/background_jobs.py')
| -rw-r--r-- | uploader/background_jobs.py | 46 |
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) |
