about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--wqflask/wqflask/__init__.py4
-rw-r--r--wqflask/wqflask/oauth2/collections.py16
-rw-r--r--wqflask/wqflask/templates/base.html2
-rw-r--r--wqflask/wqflask/templates/collections/list.html8
4 files changed, 26 insertions, 4 deletions
diff --git a/wqflask/wqflask/__init__.py b/wqflask/wqflask/__init__.py
index 38a69d33..13685324 100644
--- a/wqflask/wqflask/__init__.py
+++ b/wqflask/wqflask/__init__.py
@@ -32,6 +32,7 @@ from wqflask.api.markdown import news_blueprint
 from wqflask.api.jobs import jobs as jobs_bp
 from wqflask.oauth2.routes import oauth2
 from wqflask.oauth2.checks import user_logged_in
+from wqflask.oauth2.collections import num_collections
 from wqflask.oauth2.request_utils import user_details, authserver_authorise_uri
 
 from wqflask.jupyter_notebooks import jupyter_notebooks
@@ -55,7 +56,8 @@ app.jinja_env.globals.update(
     numify=formatting.numify,
     logged_in=user_logged_in,
     authserver_authorise_uri=authserver_authorise_uri,
-    user_details=user_details)
+    user_details=user_details,
+    num_collections=num_collections)
 
 app.config["SESSION_REDIS"] = redis.from_url(app.config["REDIS_URL"])
 
diff --git a/wqflask/wqflask/oauth2/collections.py b/wqflask/wqflask/oauth2/collections.py
new file mode 100644
index 00000000..e31b4ad2
--- /dev/null
+++ b/wqflask/wqflask/oauth2/collections.py
@@ -0,0 +1,16 @@
+"""Functions for collections."""
+from .session import session_info
+from .checks import user_logged_in
+from .client import oauth2_get, no_token_get
+
+def num_collections() -> int:
+    """Compute the number of collections available for tte current sussion."""
+    anon_id = session_info()["anon_id"]
+    all_collections = no_token_get(
+        f"oauth2/user/collections/{anon_id}/list").either(
+            lambda _err: [], lambda colls: colls)
+    if user_logged_in():
+        all_collections = all_collections + oauth2_get(
+            "oauth2/user/collections/list").either(
+                lambda _err: [], lambda colls: colls)
+    return len(all_collections)
diff --git a/wqflask/wqflask/templates/base.html b/wqflask/wqflask/templates/base.html
index 38819240..126e1b82 100644
--- a/wqflask/wqflask/templates/base.html
+++ b/wqflask/wqflask/templates/base.html
@@ -141,7 +141,7 @@
                     {% if g.user_session %}
                     <li class="">
                         <a href="/collections/list">Collections
-                            <span class="badge badge-info">{{ g.user_session.num_collections }}</span>
+                            <span class="badge badge-info">{{num_collections()}}</span>
                         </a>
                     </li>
                     <li class="">
diff --git a/wqflask/wqflask/templates/collections/list.html b/wqflask/wqflask/templates/collections/list.html
index 437b0cc3..fc524c73 100644
--- a/wqflask/wqflask/templates/collections/list.html
+++ b/wqflask/wqflask/templates/collections/list.html
@@ -34,7 +34,7 @@
 	  {{display_error("Anonymous Collections", anon_collections_error)}}
 	  {%endif%}
 	  {%if anon_collections | length > 0%}
-	  <table class="table-hover table-striped cell-border" id='trait_table'
+	  <table class="table-hover table-striped cell-border" id='anon_trait_table'
 		 style="float: left;">
 	    <caption>Anonymous Collections</caption>
             <thead>
@@ -64,7 +64,10 @@
             </tbody>
           </table>
 	  {%endif%}
-        {% if collections|length > 0 %}
+	  {% if collections|length > 0 %}
+          {% if (anon_collections | length > 0)  and (collections | length > 0) %}
+	  <hr />
+	  {%endif%}
           <table class="table-hover table-striped cell-border" id='trait_table' style="float: left;">
 	    <caption>User Collections</caption>
             <thead>
@@ -126,6 +129,7 @@
                 { "type": "natural", "width": "15%", "targets": 5}
             ];
 
+	    create_table("anon_trait_table", [], columnDefs)
             create_table(tableId, [], columnDefs)
 
             submit_special = function(url) {