about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--wqflask/wqflask/views.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/wqflask/wqflask/views.py b/wqflask/wqflask/views.py
index 9936f65c..cd77f64f 100644
--- a/wqflask/wqflask/views.py
+++ b/wqflask/wqflask/views.py
@@ -27,6 +27,7 @@ from gn3.db.phenotypes import Phenotype
 from gn3.db.phenotypes import PublishXRef
 from gn3.db.phenotypes import Publication
 from gn3.db.phenotypes import fetchone
+from gn3.db.phenotypes import update
 
 from flask import current_app
 from flask import g
@@ -447,6 +448,49 @@ def edit_trait(name, inbred_set_id):
         version=GN_VERSION)
 
 
+@app.route("/trait/update", methods=["POST"])
+def update_trait():
+    conn = MySQLdb.Connect(db=current_app.config.get("DB_NAME"),
+                           user=current_app.config.get("DB_USER"),
+                           passwd=current_app.config.get("DB_PASS"),
+                           host=current_app.config.get("DB_HOST"))
+    # Filter out empty values
+    data_ = {k: v for k, v in request.form.items() if v is not ''}
+
+    # Run updates:
+    update(conn, "Phenotype",
+           data=Phenotype(
+               pre_pub_description=data_.get("pre-pub-desc"),
+               post_pub_description=data_.get("post-pub-desc"),
+               original_description=data_.get("orig-desc"),
+               units=data_.get("units"),
+               pre_pub_abbreviation=data_.get("pre-pub-abbrev"),
+               post_pub_abbreviation=data_.get("post-pub-abbrev"),
+               lab_code=data_.get("labcode"),
+               submitter=data_.get("submitter"),
+               owner=data_.get("owner"),
+           ),
+           where=Phenotype(id_=data_.get("phenotype-id")))
+    update(conn, "Publication",
+           data=Publication(
+               abstract=data_.get("abstract"),
+               authors=data_.get("authors"),
+               title=data_.get("title"),
+               journal=data_.get("journal"),
+               volume=data_.get("volume"),
+               pages=data_.get("pages"),
+               month=data_.get("month"),
+               year=data_.get("year")),
+           where=Publication(id_=data_.get("pubmed-id")))
+    update(conn, "PublishXRef",
+           data=PublishXRef(comments="",
+                            publication_id=data_.get("pubmed-id")),
+           where=PublishXRef(
+               id_=data_.get("dataset-name"),
+               inbred_set_id=data_.get("inbred-set-id")))
+    return redirect("/trait/10007/edit/1")
+
+
 @app.route("/create_temp_trait", methods=('POST',))
 def create_temp_trait():
     logger.info(request.url)