From 68cf0750ee29d91abf8fe8d0a81426e324b41b12 Mon Sep 17 00:00:00 2001 From: Frederick Muriuki Muriithi Date: Wed, 13 Jul 2022 02:37:52 +0300 Subject: Implement dataset selection - Implement UI enabling selection from existing datasets - Start implementation of UI that enables creation of new dataset --- qc_app/dbinsert.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'qc_app/dbinsert.py') diff --git a/qc_app/dbinsert.py b/qc_app/dbinsert.py index 4fbd0d3..523152d 100644 --- a/qc_app/dbinsert.py +++ b/qc_app/dbinsert.py @@ -177,6 +177,17 @@ def create_study(): flash(f"Missing data: {aserr.args[0]}", "alert-error") return redirect(url_for("dbinsert.select_study"), code=307) +def datasets_by_study(studyid:int) -> tuple: + "Retrieve datasets associated with a study with the ID `studyid`." + with database_connection() as conn: + with conn.cursor(cursorclass=DictCursor) as cursor: + query = "SELECT * FROM ProbeSetFreeze WHERE ProbeFreezeId=%s" + print(f"QUERY: {query}\n\tPARAMS: ({studyid},)") + cursor.execute(query, (studyid,)) + return tuple(cursor.fetchall()) + + return tuple() + @dbinsertbp.route("/dataset", methods=["POST"]) def select_dataset(): "Select the dataset to add the file contents against" @@ -186,15 +197,14 @@ def select_dataset(): assert form.get("filetype"), "filetype" assert form.get("species"), "species" assert form.get("genechipid"), "platform" - assert (form.get("studyid") or form.get(studyname)), "" - assert form.get(""), "" - assert form.get(""), "" - assert form.get(""), "" - assert form.get(""), "" + assert (form.get("studyid") or request.args.get("studyid")), "study" + studyid=(form.get("studyid") or request.args.get("studyid")) + datasets = datasets_by_study(studyid) return render_template( "select_dataset.html", filename=form["filename"], - filetype=form["filetype"], species=speciesid, genechipid=genechipid) + filetype=form["filetype"], species=form["species"], + genechipid=form["genechipid"], studyid=studyid, datasets=datasets) except AssertionError as aserr: return render_error(f"Missing data: {aserr.args[0]}") -- cgit v1.2.3