From c4f507c6e1042a1e42f0fe8c08e2eff13fa12d8c Mon Sep 17 00:00:00 2001 From: Sam Date: Thu, 30 Jan 2014 04:35:21 +0000 Subject: Before trying to fix user login issue --- wqflask/wqflask/collect.py | 19 +++++++++++++------ wqflask/wqflask/model.py | 30 ++++++++++++++++++++++++++++++ wqflask/wqflask/templates/base.html | 8 ++++++++ 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 @@ -103,6 +103,14 @@
  • Links
  • +
  • + Collections + {% if g.user_session.user_ob %} + {{ g.user_session.user_ob.display_num_collections() }} + {% endif %} + +
  • +
  • {% if g.user_session.logged_in %} Sign out -- cgit v1.2.3