diff options
author | Rodney Ewing <ewing.rj@gmail.com> | 2013-08-08 15:07:07 -0700 |
---|---|---|
committer | Rodney Ewing <ewing.rj@gmail.com> | 2013-08-20 08:10:50 -0700 |
commit | 93d805ad6b0e5324c515323d2fc0a4a7ea3f1dad (patch) | |
tree | ef393bce2e8f8d6cc587225a7c5733c125c9a914 /mediagoblin/notifications | |
parent | 4a2aa93c6abeb4831a03a9e8bd7089d0a6f2470e (diff) | |
download | mediagoblin-93d805ad6b0e5324c515323d2fc0a4a7ea3f1dad.tar.lz mediagoblin-93d805ad6b0e5324c515323d2fc0a4a7ea3f1dad.tar.xz mediagoblin-93d805ad6b0e5324c515323d2fc0a4a7ea3f1dad.zip |
add user prefrence for insite notifications
Diffstat (limited to 'mediagoblin/notifications')
-rw-r--r-- | mediagoblin/notifications/__init__.py | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/mediagoblin/notifications/__init__.py b/mediagoblin/notifications/__init__.py index ed9f8d78..b6f9f478 100644 --- a/mediagoblin/notifications/__init__.py +++ b/mediagoblin/notifications/__init__.py @@ -17,7 +17,8 @@ import logging from mediagoblin.db.models import Notification, \ - CommentNotification, CommentSubscription + CommentNotification, CommentSubscription, User +from mediagoblin.notifications.task import email_notification_task from mediagoblin.notifications.tools import generate_comment_message _log = logging.getLogger(__name__) @@ -121,6 +122,12 @@ NOTIFICATION_FETCH_LIMIT = 100 def get_notifications(user_id, only_unseen=True): query = Notification.query.filter_by(user_id=user_id) + wants_notifications = User.query.filter_by(id=user_id).first()\ + .wants_notifications + + # If the user does not want notifications, don't return any + if not wants_notifications: + return None if only_unseen: query = query.filter_by(seen=False) @@ -130,12 +137,19 @@ def get_notifications(user_id, only_unseen=True): return notifications + def get_notification_count(user_id, only_unseen=True): query = Notification.query.filter_by(user_id=user_id) + wants_notifications = User.query.filter_by(id=user_id).first()\ + .wants_notifications if only_unseen: query = query.filter_by(seen=False) - count = query.count() + # If the user doesn't want notifications, don't show any + if not wants_notifications: + count = None + else: + count = query.count() return count |