about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBonfaceKilz2022-05-20 09:58:23 +0300
committerBonfaceKilz2022-05-27 15:17:52 +0300
commit368dd574093e6d67b55e4224447395aabdd9e4dc (patch)
tree904198e0e8c97fcc78a6ca9ea531fd03bd8d2ff3
parent58a17d90c9895baa6884ec11b4ae17351736266c (diff)
downloadgenenetwork2-368dd574093e6d67b55e4224447395aabdd9e4dc.tar.gz
Parse author id into a human readable name
* wqflask/wqflask/metadata_edits.py (_get_author):
New function.
(show_case_attribute_columns): Pass the author
name and id---case-attribute---field into the
template.
* wqflask/wqflask/templates/case_attributes.html:
Add an "author" column when displaying the
modified/deleted/inserted data. Also, add the
case-attribute's id as a data-id element.
-rw-r--r--wqflask/wqflask/metadata_edits.py16
-rw-r--r--wqflask/wqflask/templates/case_attributes.html16
2 files changed, 27 insertions, 5 deletions
diff --git a/wqflask/wqflask/metadata_edits.py b/wqflask/wqflask/metadata_edits.py
index e08e945e..dc2019c7 100644
--- a/wqflask/wqflask/metadata_edits.py
+++ b/wqflask/wqflask/metadata_edits.py
@@ -51,6 +51,14 @@ from gn3.db.sample_data import get_case_attributes
 metadata_edit = Blueprint("metadata_edit", __name__)
 
 
+def _get_author(author: str) -> str:
+    redis_conn = redis.from_url(
+            current_app.config["REDIS_URL"], decode_responses=True
+        )
+    return json.loads(redis_conn.hget("users", author)).get(
+                "full_name", author)
+
+
 def _get_diffs(
     diff_dir: str, user_id: str, redis_conn: redis.Redis, gn_proxy_url: str
 ):
@@ -710,8 +718,10 @@ def show_case_attribute_columns():
     if diff_data:
         for author, diff in diff_data:
             diff = json.loads(diff)
-            diff["author"] = author
+            author = _get_author(author)
             if (m_ := diff.get("Modification")):
+                m_["author"] = author
+                m_["id"] = id_
                 if m_.get("description"):
                     m_["description"]["Diff"] = "\n".join(
                         difflib.ndiff(
@@ -726,8 +736,12 @@ def show_case_attribute_columns():
                         ))
                     modifications.append(m_)
             if (d_ := diff.get("Deletion")):
+                d_["author"] = author
+                d_["id"] = id_
                 deletions.append(d_)
             if (i_ := diff.get("Insert")):
+                i_["author"] = author
+                i_["id"] = id_
                 inserts.append(i_)
     # import pudb; pu.db
 
diff --git a/wqflask/wqflask/templates/case_attributes.html b/wqflask/wqflask/templates/case_attributes.html
index 0e11554a..4eaf5454 100644
--- a/wqflask/wqflask/templates/case_attributes.html
+++ b/wqflask/wqflask/templates/case_attributes.html
@@ -128,6 +128,7 @@
 	<h3>Modify Existing Case Attributes</h3>
 	<table class="table table-responsive table-hover table-striped cell-border" id="table-modifications">
             <thead>
+		<th scope="col">Author</th>
 		<th scope="col">Diff</th>
 		<th scope="col">Action</th>
             </thead>
@@ -135,7 +136,8 @@
 		{% for data in modifications %}
 		{% set reject_url = "" %}
                 {% set approve_url = "" %}
-		<tr>
+		<tr data-id="{{ data.get('id') }}">
+		    <td>{{ data.get('author') }}</td>
 		    <td>
 			{% if data.get("name")%}
 			<b>Name:</b><br/>
@@ -173,9 +175,11 @@
 		<col class="case-attribute">
 		<col>
 		<col>
+		<col>
 	    </colgroup>
             <thead>
 		<th scope="col">Case Attribute</th>
+		<th scope="col">Author</th>
 		<th scope="col">Description</th>
 		<th scope="col">Action</th>
             </thead>
@@ -185,6 +189,7 @@
                 {% set approve_url = "" %}
                 <tr data-id="{{data.get('id')}}">
 		    <td> {{data.get("name")}} </td>
+                    <td>{{ data.get('author') }}</td>
 		    <td> {{data.get("description")}} </td>
 		    <td>
 			<button type="button"
@@ -208,9 +213,11 @@
 		<col class="case-attribute">
 		<col>
 		<col>
+		<col>
 	    </colgroup>
 	    <thead>
 		<th scope="col">Case Attribute</th>
+		<th scope="col">Author</th>
 		<th scope="col">Description</th>
 		<th scope="col">Action</th>
 	    </thead>
@@ -218,9 +225,10 @@
 		{% for data in inserts %}
 		{% set reject_url = "" %}
                 {% set approve_url = "" %}
-                <tr>
-		    <td> {{data.get("name")}} </td>
-		    <td> {{data.get("description")}} </td>
+                <tr data-id="{{ data.get('id') }}">
+		    <td>{{data.get("name")}}</td>
+		    <td>{{ data.get('author')}}</td>
+		    <td>{{data.get("description")}} </td>
 		    <td>
 			<button type="button"
 				class="btn btn-secondary btn-sm">