aboutsummaryrefslogtreecommitdiff
path: root/qc_app/upload
diff options
context:
space:
mode:
Diffstat (limited to 'qc_app/upload')
-rw-r--r--qc_app/upload/rqtl2.py28
1 files changed, 18 insertions, 10 deletions
diff --git a/qc_app/upload/rqtl2.py b/qc_app/upload/rqtl2.py
index 860a6a9..e0fb40c 100644
--- a/qc_app/upload/rqtl2.py
+++ b/qc_app/upload/rqtl2.py
@@ -600,29 +600,37 @@ def select_probeset_dataset(species_id: int, population_id: int):
methods=["POST"])
def create_probeset_study(species_id: int, population_id: int):
"""Create a new probeset study."""
+ errorclasses = "alert-error error-rqtl2 error-rqtl2-create-probeset-study"
with database_connection(app.config["SQL_URI"]) as conn:
def __thunk__():
form = request.form
- select_study_page = redirect(
- url_for("upload.rqtl2.select_probeset_study",
+ dataset_info_page = redirect(
+ url_for("upload.rqtl2.select_dataset_info",
species_id=species_id,
population_id=population_id),
code=307)
if not (bool(form.get("platformid")) and
bool(platform_by_id(conn, int(form["platformid"])))):
- flash("Invalid platform selected.", "alert-error error-rqtl2")
- return select_study_page
+ flash("Invalid platform selected.", errorclasses)
+ return dataset_info_page
if not (bool(form.get("tissueid")) and
bool(tissue_by_id(conn, int(form["tissueid"])))):
- flash("Invalid tissue selected.", "alert-error error-rqtl2")
- return select_study_page
+ flash("Invalid tissue selected.", errorclasses)
+ return dataset_info_page
- study = probeset_create_study(
- conn, population_id, int(form["platformid"]), int(form["tissueid"]),
- form["studyname"], form.get("studyfullname") or "",
- form.get("studyshortname") or "")
+ studyname = form["studyname"]
+ try:
+ study = probeset_create_study(
+ conn, population_id, int(form["platformid"]), int(form["tissueid"]),
+ studyname, form.get("studyfullname") or "",
+ form.get("studyshortname") or "")
+ except mdb.IntegrityError as _ierr:
+ flash(f"ProbeSet study with name '{escape(studyname)}' already "
+ "exists.",
+ errorclasses)
+ return dataset_info_page
return render_template(
"rqtl2/create-probe-study-success.html",
species=species_by_id(conn, species_id),