aboutsummaryrefslogtreecommitdiff
path: root/qc_app
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2024-02-13 04:09:34 +0300
committerFrederick Muriuki Muriithi2024-02-13 04:09:34 +0300
commit971d1383aa81947a1d43725150bcfa6eceec24f0 (patch)
tree0c538514aa416a31429422727a81a3570db899f9 /qc_app
parent8b637a760362d08fb92152288d0b04f90299da5f (diff)
downloadgn-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.html31
-rw-r--r--qc_app/upload/rqtl2.py22
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)