about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2023-02-21 16:25:55 +0300
committerFrederick Muriuki Muriithi2023-02-21 16:27:28 +0300
commit01c4d4a04d40ed5888a3d3eef11c5cee3c5375e7 (patch)
treed46fba8b5f157085d2305fde34d7684f456136c9
parent8e53cd521fe07adc1076c4cc9987f1619e413b6e (diff)
downloadgenenetwork2-01c4d4a04d40ed5888a3d3eef11c5cee3c5375e7.tar.gz
oauth2: resources: List resource data. List unlinked data.
List a particular resource's data.

List any unlinked data that can be attached to a particular resource.
-rw-r--r--wqflask/wqflask/oauth2/resources.py13
-rw-r--r--wqflask/wqflask/templates/oauth2/view-resource.html93
2 files changed, 102 insertions, 4 deletions
diff --git a/wqflask/wqflask/oauth2/resources.py b/wqflask/wqflask/oauth2/resources.py
index db23fc75..2a79f6cd 100644
--- a/wqflask/wqflask/oauth2/resources.py
+++ b/wqflask/wqflask/oauth2/resources.py
@@ -54,11 +54,20 @@ def view_resource(resource_id: uuid.UUID):
     # Display the resource's details
     # Provide edit/delete options
     # Metadata edit maybe?
+    def __resource_success__(resource):
+        dataset_type = resource["resource_category"]["resource_category_key"]
+        return oauth2_get(f"oauth2/resource/{dataset_type}/unlinked-data").either(
+            lambda err: render_template(
+                "oauth2/view-resource.html", resource=resource,
+                unlinked_error=process_error(err)),
+            lambda unlinked: render_template(
+                "oauth2/view-resource.html", resource=resource, error=None,
+                unlinked_data=unlinked))
+
     return oauth2_get(f"oauth2/resource/view/{resource_id}").either(
         lambda err: render_template("oauth2/view-resource.html",
                                     resource=None, error=process_error(err)),
-        lambda resource: render_template(
-            "oauth2/view-resource.html", resource=resource, error=None))
+        __resource_success__)
 
 @resources.route("/edit/<uuid:resource_id>", methods=["GET"])
 @require_oauth2
diff --git a/wqflask/wqflask/templates/oauth2/view-resource.html b/wqflask/wqflask/templates/oauth2/view-resource.html
index 0ebd7f7a..4ae276f8 100644
--- a/wqflask/wqflask/templates/oauth2/view-resource.html
+++ b/wqflask/wqflask/templates/oauth2/view-resource.html
@@ -1,5 +1,6 @@
 {%extends "base.html"%}
 {%from "oauth2/profile_nav.html" import profile_nav%}
+{%from "oauth2/display_error.html" import display_error%}
 {%block title%}View User{%endblock%}
 {%block content%}
 <div class="container" style="min-width: 1250px;">
@@ -36,11 +37,99 @@
 	  </tr>
 	</tbody>
       </table>
-
-      <p>List the resource's data here...</p>
       {%endif%}
     </div>
 
+    <div class="row">
+      <table class="table">
+	<caption>Resource Data</caption>
+	<thead>
+	  <tr>
+	    <th>Name</th>
+	    <th>Full Name</th>
+	    <th>Actions</th>
+	  </tr>
+	</thead>
+
+	<tbody>
+	  {%for data_item in resource.resource_data:%}
+	  <tr>
+	    <td>
+	      <a href="https://gn1.genenetwork.org/webqtl/main.py?FormID=sharinginfo&GN_AccessionId={{data_item.accession_id}}&InfoPageName={{data_item.dataset_name}}"
+		 title="Link to information on dataset '{{data_item.dataset_fullname}}'">
+		{{data_item.dataset_name}}
+	      </a>
+	    </td>
+	    <td>{{data_item.dataset_fullname}}</td>
+	    <td>
+	      <form action="#" method="POST">
+		<input type="hidden" name="resource_id"
+		       value="{{resource.resource_id}}" />
+		<input type="hidden" name="data_id"
+		       value="{{data_item.dataset_or_trait_id}}" />
+		<input type="submit" value="Unlink" class="btn btn-danger" />
+	      </form>
+	    </td>
+	  </tr>
+	  {%else%}
+	  <tr>
+	    <td colspan="2">
+	      <span class="glyphicon glyphicon-info-sign text-danger">
+	      </span>
+	      &nbsp;
+	      <strong class="text-info">No linked data.</strong>
+	    </td>
+	  </tr>
+	  {%endfor%}
+	</tbody>
+      </table>
+    </div>
+
+    <div class="row">
+      <table class="table">
+	<caption>Link Data</caption>
+	<thead>
+	  <tr>
+	    <th>Name</th>
+	    <th>Actions</th>
+	  </tr>
+	</thead>
+	<tbody>
+	  {%if unlinked_error is defined%}
+	  display_error("Unlinked Data Error", unlinked_error)
+	  {%else%}
+	  {%for data_item in unlinked_data:%}
+	  <tr>
+	    <td>
+	      <a href="https://gn1.genenetwork.org/webqtl/main.py?FormID=sharinginfo&GN_AccessionId={{data_item.accession_id}}&InfoPageName={{data_item.dataset_name}}"
+		 title="Link to information on dataset '{{data_item.dataset_fullname}}'">
+		{{data_item.dataset_fullname}}
+	      </a>
+	    </td>
+	    <td>
+	      <form method="POST" action="#">
+		<input type="hidden" name="resource_id"
+		       value="{{resource.resource_id}}" />
+		<input type="hidden" name="data_id"
+		       value="{{data_item.dataset_or_trait_id}}" />
+		<input type="submit" value="Link" class="btn btn-info"
+		       {%if resource.resource_category.resource_category_description == "mRNA Dataset"%}
+		       disabled="disabled"
+		       {%endif%} />
+	      </form>
+	    </td>
+	  </tr>
+	  {%else%}
+	  <span class="glyphicon glyphicon-info-sign text-danger">
+	  </span>
+	  &nbsp;
+	  <strong class="text-info">No data to link.</strong>
+	  {%endfor%}
+	  {%endif%}
+	</tbody>
+      </table>
+    </div>
+
   </div>
 
 </div>