about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--wqflask/wqflask/metadata_edits.py69
-rw-r--r--wqflask/wqflask/templates/edit_probeset.html9
2 files changed, 29 insertions, 49 deletions
diff --git a/wqflask/wqflask/metadata_edits.py b/wqflask/wqflask/metadata_edits.py
index 4b960072..0840d4dd 100644
--- a/wqflask/wqflask/metadata_edits.py
+++ b/wqflask/wqflask/metadata_edits.py
@@ -127,40 +127,7 @@ def edit_probeset(conn, name):
         columns=list(probeset_mapping.values()),
         where=Probeset(name=name),
     )
-    json_data = fetchall(
-        conn, "metadata_audit", where=MetadataAudit(dataset_id=probeset_.id_)
-    )
-    Edit = namedtuple("Edit", ["field", "old", "new", "diff"])
-    Diff = namedtuple("Diff", ["author", "diff", "timestamp"])
-    diff_data = []
-    for data in json_data:
-        json_ = json.loads(data.json_data)
-        timestamp = json_.get("timestamp")
-        author = json_.get("author")
-        for key, value in json_.items():
-            if isinstance(value, dict):
-                for field, data_ in value.items():
-                    diff_data.append(
-                        Diff(
-                            author=author,
-                            diff=Edit(
-                                field,
-                                data_.get("old"),
-                                data_.get("new"),
-                                "\n".join(
-                                    difflib.ndiff(
-                                        [data_.get("old")], [data_.get("new")]
-                                    )
-                                ),
-                            ),
-                            timestamp=timestamp,
-                        )
-                    )
-    diff_data_ = None
-    if len(diff_data) > 0:
-        diff_data_ = groupby(diff_data, lambda x: x.timestamp)
     return {
-        "diff": diff_data_,
         "probeset": probeset_,
     }
 
@@ -554,21 +521,31 @@ def show_diff(name):
 
 
 @metadata_edit.route("/<dataset_id>/traits/<name>/history")
-def show_history(dataset_id: str, name: str):
+@metadata_edit.route("/probeset/<name>")
+def show_history(dataset_id: str = "", name: str = ""):
     diff_data_ = None
     with database_connection() as conn:
-        publish_xref = fetchone(
-            conn=conn,
-            table="PublishXRef",
-            where=PublishXRef(id_=name, inbred_set_id=dataset_id),
-        )
-
-        json_data = fetchall(
-            conn,
-            "metadata_audit",
-            where=MetadataAudit(dataset_id=publish_xref.id_),
-        )
-
+        json_data = None
+        if dataset_id:  # This is a published phenotype
+            json_data = fetchall(
+                conn,
+                "metadata_audit",
+                where=MetadataAudit(dataset_id=fetchone(
+                    conn=conn,
+                    table="PublishXRef",
+                    where=PublishXRef(id_=name, inbred_set_id=dataset_id),
+                ).id_),
+            )
+        else:  # This is a probeset
+            json_data = fetchall(
+                conn, "metadata_audit",
+                where=MetadataAudit(dataset_id=fetchone(
+                    conn=conn,
+                    table="ProbeSet",
+                    columns=list(probeset_mapping.values()),
+                    where=Probeset(name=name),
+                ).id_)
+            )
         Edit = namedtuple("Edit", ["field", "old", "new", "diff"])
         Diff = namedtuple("Diff", ["author", "diff", "timestamp"])
         diff_data = []
diff --git a/wqflask/wqflask/templates/edit_probeset.html b/wqflask/wqflask/templates/edit_probeset.html
index ab91b701..d9aee9d8 100644
--- a/wqflask/wqflask/templates/edit_probeset.html
+++ b/wqflask/wqflask/templates/edit_probeset.html
@@ -2,8 +2,12 @@
 {% block title %}Trait Submission{% endblock %}
 {% block content %}
 <!-- Start of body -->
-Edit Trait for Probeset
-Submit Trait | Reset
+<div class="container">
+    <div class="page-header text-left">
+	<h1>Probeset Editing Form:</h1>
+	<small><a href="{{url_for('metadata_edit.show_history', name=name)}}" target="_blank">[View History]</a></small>
+    </div>
+</div>
 
 {% if diff %}
 
@@ -54,7 +58,6 @@ Submit Trait | Reset
 {% endif %}
 
 <form id="edit-form" class="form-horizontal" method="post" action="/datasets/traits/{{ name }}?resource-id={{ resource_id }}">
-          <h2 class="text-center">Probeset Information:</h2>
     <div class="form-group">
         <label for="symbol" class="col-sm-2 control-label">Symbol:</label>
         <div class="col-sm-4">