about summary refs log tree commit diff
path: root/uploader
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2025-04-28 03:54:16 -0500
committerFrederick Muriuki Muriithi2025-04-28 03:54:16 -0500
commitffd16388090c9a2397efaeb0816bd6e87414498c (patch)
treeda182cdd96dddb7ab61ef6a435ef4ba37aaae5c0 /uploader
parent031cfe6390188271a7e5bcc7db9d275197215f46 (diff)
downloadgn-uploader-ffd16388090c9a2397efaeb0816bd6e87414498c.tar.gz
View a publication's details.
Diffstat (limited to 'uploader')
-rw-r--r--uploader/publications/views.py17
-rw-r--r--uploader/templates/publications/view-publication.html74
2 files changed, 90 insertions, 1 deletions
diff --git a/uploader/publications/views.py b/uploader/publications/views.py
index 85d3aef..dc5b42b 100644
--- a/uploader/publications/views.py
+++ b/uploader/publications/views.py
@@ -6,7 +6,10 @@ from flask import Blueprint, render_template, current_app as app
 
 from uploader.authorisation import require_login
 
-from .models import fetch_publications
+from .models import (
+    fetch_publications,
+    fetch_publication_by_id,
+    fetch_publication_phenotypes)
 
 from gn_libs.debug import __pk__
 
@@ -32,3 +35,15 @@ def list_publications():
                 fetch_publications(conn), start=1)),
             "status": "success"
         })
+
+
+@pubbp.route("/view/<int:publication_id>", methods=["GET"])
+@require_login
+def view_publication(publication_id: int):
+    """View more details on a particular publication."""
+    with database_connection(app.config["SQL_URI"]) as conn:
+        return render_template(
+            "publications/view-publication.html",
+            publication=fetch_publication_by_id(conn, publication_id),
+            linked_phenotypes=tuple(fetch_publication_phenotypes(
+                conn, publication_id)))
diff --git a/uploader/templates/publications/view-publication.html b/uploader/templates/publications/view-publication.html
new file mode 100644
index 0000000..c6bbb96
--- /dev/null
+++ b/uploader/templates/publications/view-publication.html
@@ -0,0 +1,74 @@
+{%extends "publications/base.html"%}
+{%from "flash_messages.html" import flash_all_messages%}
+
+{%block title%}View Publication{%endblock%}
+
+{%block pagetitle%}View Publication{%endblock%}
+
+
+{%block contents%}
+{{flash_all_messages()}}
+
+<div class="row">
+  <table class="table">
+    <tr>
+      <th>PubMed</th>
+      <td>
+        {%if publication.PubMed_ID%}
+        <a href="https://pubmed.ncbi.nlm.nih.gov/{{publication.PubMed_ID}}/"
+           target="_blank">{{publication.PubMed_ID}}</a>
+        {%else%}
+        —
+        {%endif%}
+      </td>
+    </tr>
+    <tr>
+      <th>Title</th>
+      <td>{{publication.Title or "—"}}</td>
+    </tr>
+    <tr>
+      <th>Authors</th>
+      <td>{{publication.Authors or "—"}}</td>
+    </tr>
+    <tr>
+      <th>Journal</th>
+      <td>{{publication.Journal or "—"}}</td>
+    </tr>
+    <tr>
+      <th>Published</th>
+      <td>{{publication.Month or ""}} {{publication.Year or "—"}}</td>
+    </tr>
+    <tr>
+      <th>Volume</th>
+      <td>{{publication.Volume or "—"}}</td>
+    </tr>
+    <tr>
+      <th>Pages</th>
+      <td>{{publication.Pages or "—"}}</td>
+    </tr>
+    <tr>
+      <th>Abstract</th>
+      <td>{{publication.Abstract or "—"}}</td>
+    </tr>
+  </table>
+</div>
+
+<div class="row">
+  <form id="frm-edit-delete-publication" method="POST" action="#">
+    <input type="hidden" name="publication_id" value="{{publication.Id}}" />
+    <div class="form-group">
+      <input type="submit" value="edit" class="btn btn-primary" />
+      {%if linked_phenotypes | length == 0%}
+      <input type="submit" value="delete" class="btn btn-danger" />
+      {%endif%}
+    </div>
+  </form>
+</div>
+{%endblock%}
+
+
+{%block javascript%}
+<script type="text/javascript">
+  $(function() {});
+</script>
+{%endblock%}