aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/notifications
diff options
context:
space:
mode:
authorRodney Ewing <ewing.rj@gmail.com>2013-08-08 15:07:07 -0700
committerRodney Ewing <ewing.rj@gmail.com>2013-08-20 08:10:50 -0700
commit93d805ad6b0e5324c515323d2fc0a4a7ea3f1dad (patch)
treeef393bce2e8f8d6cc587225a7c5733c125c9a914 /mediagoblin/notifications
parent4a2aa93c6abeb4831a03a9e8bd7089d0a6f2470e (diff)
downloadmediagoblin-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__.py18
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