diff options
author | Frederick Muriuki Muriithi | 2024-02-13 04:09:34 +0300 |
---|---|---|
committer | Frederick Muriuki Muriithi | 2024-02-13 04:09:34 +0300 |
commit | 971d1383aa81947a1d43725150bcfa6eceec24f0 (patch) | |
tree | 0c538514aa416a31429422727a81a3570db899f9 /qc_app | |
parent | 8b637a760362d08fb92152288d0b04f90299da5f (diff) | |
download | gn-uploader-971d1383aa81947a1d43725150bcfa6eceec24f0.tar.gz |
Provide nice UI progress indicators.
Diffstat (limited to 'qc_app')
-rw-r--r-- | qc_app/templates/rqtl2/rqtl2-qc-job-status.html | 31 | ||||
-rw-r--r-- | qc_app/upload/rqtl2.py | 22 |
2 files changed, 42 insertions, 11 deletions
diff --git a/qc_app/templates/rqtl2/rqtl2-qc-job-status.html b/qc_app/templates/rqtl2/rqtl2-qc-job-status.html index 85b8864..4bdc983 100644 --- a/qc_app/templates/rqtl2/rqtl2-qc-job-status.html +++ b/qc_app/templates/rqtl2/rqtl2-qc-job-status.html @@ -10,14 +10,29 @@ {%block contents%} <h1 class="heading">R/qtl2 bundle: QC job status</h1> -<h2 class="heading">R/qtl2 bundle: QC Job Status</h2> - -<hr /> -<p>The job:</p> -<hr /> -{{job}} -<hr /> -<hr /> +{%if geno_percent%} +<p> + <h2>Checking 'geno' file:</h2> + <progress id="prg-geno-checking" value="{{geno_percent}}" max="100"> + {{geno_percent}}%</progress> + {{geno_percent}}%</p> +{%endif%} + +{%if pheno_percent%} +<p> + <h2>Checking 'pheno' file:</h2> + <progress id="prg-pheno-checking" value="{{pheno_percent}}" max="100"> + {{pheno_percent}}%</progress> + {{pheno_percent}}%</p> +{%endif%} + +{%if phenose_percent%} +<p> + <h2>Checking 'phenose' file:</h2> + <progress id="prg-phenose-checking" value="{{phenose_percent}}" max="100"> + {{phenose_percent}}%</progress> + {{phenose_percent}}%</p> +{%endif%} <h4>Log</h4> <div class="cli-output"> diff --git a/qc_app/upload/rqtl2.py b/qc_app/upload/rqtl2.py index 66b219d..a32019f 100644 --- a/qc_app/upload/rqtl2.py +++ b/qc_app/upload/rqtl2.py @@ -1,6 +1,7 @@ """Module to handle uploading of R/qtl2 bundles.""" import sys import json +from typing import Union from pathlib import Path from datetime import date from uuid import UUID, uuid4 @@ -227,9 +228,24 @@ def rqtl2_bundle_qc_status(jobid: UUID): rqtl2bundle=Path(jobmeta["rqtl2-bundle-file"]), rqtl2bundleorig=jobmeta["original-filename"]) - return render_template("rqtl2/rqtl2-qc-job-status.html", - job=thejob, - messages=tuple()) + def compute_percentage(thejob, filetype) -> Union[str, None]: + if f"{filetype}-linecount" in thejob: + return "100" + if f"{filetype}-filesize" in thejob: + percent = ((int(thejob.get(f"{filetype}-checked", 0)) + / + int(thejob.get(f"{filetype}-filesize", 1))) + * 100) + return f"{percent:.2f}" + return None + + return render_template( + "rqtl2/rqtl2-qc-job-status.html", + job=thejob, + geno_percent=compute_percentage(thejob, "geno"), + pheno_percent=compute_percentage(thejob, "pheno"), + phenose_percent=compute_percentage(thejob, "phenose"), + messages=tuple()) except jobs.JobNotFound: return render_template("rqtl2/no-such-job.html", jobid=jobid) |