diff options
author | zsloan | 2016-07-19 19:26:51 +0000 |
---|---|---|
committer | zsloan | 2016-07-19 19:26:51 +0000 |
commit | 7a24f2a307229f70ddcee0e4d99df55ded89940c (patch) | |
tree | bb6c06314aaf70f5a2b68ef9c0ca093ac1bf486c | |
parent | 3d9c7c6ffb65a9c654f11b904bf3cb8449f51c0a (diff) | |
download | genenetwork2-7a24f2a307229f70ddcee0e4d99df55ded89940c.tar.gz |
Now correctly displays number of collections in top menu bar for non-logged in users
-rw-r--r-- | wqflask/wqflask/templates/base.html | 2 | ||||
-rw-r--r-- | wqflask/wqflask/user_manager.py | 22 |
2 files changed, 23 insertions, 1 deletions
diff --git a/wqflask/wqflask/templates/base.html b/wqflask/wqflask/templates/base.html index 759c4a8d..6af07edc 100644 --- a/wqflask/wqflask/templates/base.html +++ b/wqflask/wqflask/templates/base.html @@ -43,6 +43,8 @@ <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> + {% else %} + <span class="badge badge-info">{{ g.cookie_session.display_num_collections() }}</span> {% endif %} </a> </li> diff --git a/wqflask/wqflask/user_manager.py b/wqflask/wqflask/user_manager.py index e91c7327..31754ff5 100644 --- a/wqflask/wqflask/user_manager.py +++ b/wqflask/wqflask/user_manager.py @@ -99,6 +99,25 @@ class AnonUser(object): return {} else: return json.loads(collections) + + 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(self.get_collections().keys()) + if num > 0: + return num + else: + return "" + except Exception as why: + print("Couldn't display_num_collections:", why) + return "" def verify_cookie(cookie): the_uuid, separator, the_signature = cookie.partition(':') @@ -186,7 +205,8 @@ class UserSession(object): @app.before_request def before_request(): g.user_session = UserSession() - + g.cookie_session = AnonUser() + class UsersManager(object): def __init__(self): self.users = model.User.query.all() |