about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--wqflask/wqflask/views.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/wqflask/wqflask/views.py b/wqflask/wqflask/views.py
index cf7b5552..1d50bdff 100644
--- a/wqflask/wqflask/views.py
+++ b/wqflask/wqflask/views.py
@@ -33,6 +33,7 @@ from gn3.db import fetchall
 from gn3.db import fetchone
 from gn3.db import insert
 from gn3.db import update
+from gn3.db import update_raw
 from gn3.db.metadata_audit import MetadataAudit
 from gn3.db.phenotypes import Phenotype
 from gn3.db.phenotypes import Probeset
@@ -1387,3 +1388,41 @@ def display_diffs_admin():
     return render_template("display_files.html",
                            files=files)
 
+
+@app.route("/data-samples/approve/<name>")
+def approve_data(name):
+    sample_data = {}
+    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"))
+    with open(os.path.join("/tmp/sample-data/diffs", name), 'r') as myfile:
+        sample_data = json.load(myfile)
+    modifications = [d for d in sample_data.get("Modifications")]
+    for modification in modifications:
+        if modifications.get("current"):
+            (strain_id, publish_id,
+             strain_name,
+             value, se, count) = modification.get("Current").split(",")
+            row_counts = update_sample_data(
+                conn=conn,
+                strain_name=strain_name,
+                strain_id=int(strain_id),
+                publish_data_id=int(PUBLISH_ID),
+                value=value,
+                error=se,
+                count=int(count)
+            )
+            insert(conn,
+                   table="metadata_audit",
+                   data=MetadataAudit(
+                       dataset_id=sample_data.get("publishdata_id"),
+                       editor=sample_data.get("author"),
+                       json_data=json.dumps(sample_data)))
+            
+    # Once data is approved, rename it!
+    os.rename(os.path.join("/tmp/sample-data/diffs", name),
+              os.path.join("/tmp/sample-data/diffs",
+                           f"{name}.approved"))
+    return redirect("/data/approve/")
+