about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--wqflask/wqflask/collect.py19
-rw-r--r--wqflask/wqflask/model.py30
-rw-r--r--wqflask/wqflask/templates/base.html8
3 files changed, 51 insertions, 6 deletions
diff --git a/wqflask/wqflask/collect.py b/wqflask/wqflask/collect.py
index 29b73130..b1ea46d8 100644
--- a/wqflask/wqflask/collect.py
+++ b/wqflask/wqflask/collect.py
@@ -48,12 +48,19 @@ from base import trait
 
 @app.route("/collections/add")
 def collections_add():
-    user_collections = g.user_session.user_ob.user_collections
-    print("user_collections are:", user_collections)
-    return render_template("collections/add.html",
-                           traits=request.args['traits'],
-                           user_collections = user_collections,
-                           )
+    traits=request.args['traits'],
+
+    if g.user_session.logged_in:
+        user_collections = g.user_session.user_ob.user_collections
+        print("user_collections are:", user_collections)
+        return render_template("collections/add.html",
+                               traits=traits,
+                               user_collections = user_collections,
+                               )
+    else:
+        return render_template("collections/add_anonymous.html",
+                               traits=traits
+                               )
 
 
 @app.route("/collections/new")
diff --git a/wqflask/wqflask/model.py b/wqflask/wqflask/model.py
index e588e78a..71bda550 100644
--- a/wqflask/wqflask/model.py
+++ b/wqflask/wqflask/model.py
@@ -62,6 +62,25 @@ class User(Base):
                           lazy='dynamic',
                           )
 
+    def display_num_collections(self):
+        """
+        Returns the number of collections or a blank string if there are zero.
+
+
+        Because this is so unimportant...we wrap the whole thing in a try/expect...last thing we
+        want is a webpage not to be displayed because of an error here
+
+        Importand TODO: use redis to cache this, don't want to be constantly computing it
+
+        """
+        try:
+            num = len(list(self.user_collections))
+            return display_collapsible(num)
+        except Exception as why:
+            print("Couldn't display_num_collections:", why)
+            return ""
+
+
     def get_collection_by_name(self, collection_name):
         try:
             collect = self.user_collections.filter_by(name=collection_name).one()
@@ -156,6 +175,17 @@ class UserCollection(Base):
         print("members are:", json.loads(self.members))
         return len(json.loads(self.members))
 
+    #@property
+    #def display_num_members(self):
+    #    return display_collapsible(self.num_members)
+
 
     def members_as_set(self):
         return set(json.loads(self.members))
+
+
+def display_collapsible(number):
+    if number:
+        return number
+    else:
+        return ""
diff --git a/wqflask/wqflask/templates/base.html b/wqflask/wqflask/templates/base.html
index 9b98c955..48078670 100644
--- a/wqflask/wqflask/templates/base.html
+++ b/wqflask/wqflask/templates/base.html
@@ -104,6 +104,14 @@
                             <a href="/links">Links</a>
                         </li>
                         <li class="">
+                            <a href="/collections/list">Collections
+                                {% if g.user_session.user_ob %}
+                                <span class="badge badge-info">{{ g.user_session.user_ob.display_num_collections() }}</span>
+                                {% endif %}
+                            </a>
+                        </li>
+
+                        <li class="">
                             {% if g.user_session.logged_in %}
                             <a id="login_out" title="Signed in as {{ g.user_session.user_ob.name_and_org }}." href="/n/logout">Sign out</a>
                             {% else %}