about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gn2/base/data_set/genotypedataset.py10
-rw-r--r--gn2/wqflask/templates/wiki/genewiki.html1
-rw-r--r--gn2/wqflask/templates/wiki/history.html57
-rw-r--r--gn2/wqflask/views.py20
4 files changed, 83 insertions, 5 deletions
diff --git a/gn2/base/data_set/genotypedataset.py b/gn2/base/data_set/genotypedataset.py
index 77af1dad..a5b65772 100644
--- a/gn2/base/data_set/genotypedataset.py
+++ b/gn2/base/data_set/genotypedataset.py
@@ -50,7 +50,7 @@ GenoFreeze.Name = %s"""
         with database_connection(get_setting("SQL_URI")) as conn, conn.cursor() as cursor:
             cursor.execute(
                 "SELECT Strain.Name, GenoData.value, "
-                "GenoSE.error, 'N/A', Strain.Name2 "
+                "GenoSE.error, NULL, Strain.Name2 "
                 "FROM (GenoData, GenoFreeze, Strain, Geno, "
                 "GenoXRef) LEFT JOIN GenoSE ON "
                 "(GenoSE.DataId = GenoData.Id AND "
@@ -68,9 +68,9 @@ GenoFreeze.Name = %s"""
 
         if self.group.name in webqtlUtil.ParInfo:
             f1_1, f1_2, ref, nonref = webqtlUtil.ParInfo[self.group.name]
-            results.append([f1_1, 0, None, "N/A", f1_1])
-            results.append([f1_2, 0, None, "N/A", f1_2])
-            results.append([ref, -1, None, "N/A", ref])
-            results.append([nonref, 1, None, "N/A", nonref])
+            results.append([f1_1, 0, None, None, f1_1])
+            results.append([f1_2, 0, None, None, f1_2])
+            results.append([ref, -1, None, None, ref])
+            results.append([nonref, 1, None, None, nonref])
 
         return results
diff --git a/gn2/wqflask/templates/wiki/genewiki.html b/gn2/wqflask/templates/wiki/genewiki.html
index 496f5e28..41fa97df 100644
--- a/gn2/wqflask/templates/wiki/genewiki.html
+++ b/gn2/wqflask/templates/wiki/genewiki.html
@@ -19,6 +19,7 @@
                         {% if entry.get("web_url") %}
                             <sup> <small> <a href = "{{ entry.web_url }}" target = "_blank"> <span class = "glyphicon glyphicon-globe" aria-hidden = "true"></span>web</a></small></sup>
                         {% endif %}
+                        <sup><small>[<a href="/genewiki/{{ entry.id }}/history" target="_blank">history</a>]</small></sup>
                     </li>
                 {% endfor %}
             </ol>
diff --git a/gn2/wqflask/templates/wiki/history.html b/gn2/wqflask/templates/wiki/history.html
new file mode 100644
index 00000000..bda802d3
--- /dev/null
+++ b/gn2/wqflask/templates/wiki/history.html
@@ -0,0 +1,57 @@
+{% extends "base.html" %}
+{% block content %}
+    {{ flash_me() }}
+    <div class = "container container-fluid">
+        <div class="row">
+            <div class="col-sm-9">
+                <h2 class="text-info">GeneWiki Entry History</h2>
+                {% for entry in entries %}
+                    <h3 class="text-info">
+                        {% if loop.index0 == 0 %}
+                            <strong>Most Recent Version:</strong>
+                        {% elif loop.index0 == 1 %}
+                            <strong>Previous Version:</strong>
+                        {% endif %}
+                    </h3>
+                    <table class="table table-responsive table-bordered">
+                        <tbody>
+                            <tr>
+                                <th>Gene Symbol:</th>
+                                <td>{{ entry.symbol }}</td>
+                            </tr>
+                            <tr>
+                                <th>PubMed IDs:</th>
+                                <td>
+                                    {% for id in entry.pubmed_ids %}
+                                        <a href="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=PubMed&list_uids={{ id }}&dopt=Abstract">{{ id }}</a>&nbsp;
+                                    {% endfor %}
+                                    {% if not entry.pubmed_ids %}Not Available{% endif %}
+                                </td>
+                            </tr>
+                            <tr>
+                                <th>Web URL:</th>
+                                <td>{{ entry.web_url or "Not Available" }}</td>
+                            </tr>
+                            <tr>
+                                <th>Entry:</th>
+                                <td>{{ entry.comment }}</td>
+                            </tr>
+                            <tr>
+                                <th>Category:</th>
+                                <td>{{ '; '.join(entry.categories) or "Not Available" }}</td>
+                            </tr>
+                            <tr>
+                                <th>Add Time:</th>
+                                <td>{{ entry.created }}</td>
+                            </tr>
+                            <tr>
+                                <th>Reason for Modification:</th>
+                                <td>{{ entry.reason or "Not Available" }}</td>
+                            </tr>
+                        </tbody>
+                    </table>
+                {% endfor %}
+            </div>
+        </div>
+    </div>
+{% endblock %}
diff --git a/gn2/wqflask/views.py b/gn2/wqflask/views.py
index 4164c604..7699c303 100644
--- a/gn2/wqflask/views.py
+++ b/gn2/wqflask/views.py
@@ -1312,6 +1312,26 @@ def display_genewiki_page(symbol: str):
     )
 
 
+@app.route("/genewiki/<int:comment_id>/history")
+def display_wiki_history(comment_id: str):
+    entries = []
+    try:
+        entries = requests.get(
+            urljoin(
+                GN3_LOCAL_URL,
+                f"/api/metadata/wiki/{comment_id}/history"
+            )
+        )
+        entries.raise_for_status()
+        entries = entries.json()
+    except requests.RequestException as excp:
+        flash(excp, "alert-warning")
+    return render_template(
+        "wiki/history.html",
+        entries=entries
+    )
+
+
 @app.route("/datasets/<name>", methods=('GET',))
 def get_dataset(name):
     from gn2.wqflask.oauth2.client import oauth2_get