diff options
author | Jessica Tallon <tsyesika@tsyesika.se> | 2016-02-29 12:03:41 +0000 |
---|---|---|
committer | Jessica Tallon <tsyesika@tsyesika.se> | 2016-02-29 12:33:51 +0000 |
commit | 6efcab2d69c5745c2ea9616302a08e38a5af3de6 (patch) | |
tree | 4844f7d68854db032ef9c2588adf819de3a291d8 /mediagoblin/notifications | |
parent | 6d38b1858c73cd7154c9fdabdc17594a820d311b (diff) | |
download | mediagoblin-6efcab2d69c5745c2ea9616302a08e38a5af3de6.tar.lz mediagoblin-6efcab2d69c5745c2ea9616302a08e38a5af3de6.tar.xz mediagoblin-6efcab2d69c5745c2ea9616302a08e38a5af3de6.zip |
Change Notification.object_id to be ID of Comemnt not TextComment
This shouldn't really effect much but it is a needed change for the future
this changes the Notification.object_id to be the ID of the Comment (the link
table to the comment object) rather than TextComment (the comment object itself).
This is needed as now comments can be other things, other than TextComment.
Diffstat (limited to 'mediagoblin/notifications')
-rw-r--r-- | mediagoblin/notifications/__init__.py | 13 | ||||
-rw-r--r-- | mediagoblin/notifications/tools.py | 31 | ||||
-rw-r--r-- | mediagoblin/notifications/views.py | 2 |
3 files changed, 31 insertions, 15 deletions
diff --git a/mediagoblin/notifications/__init__.py b/mediagoblin/notifications/__init__.py index 8690aae5..3ed9ba79 100644 --- a/mediagoblin/notifications/__init__.py +++ b/mediagoblin/notifications/__init__.py @@ -27,14 +27,23 @@ def trigger_notification(comment, media_entry, request): ''' Send out notifications about a new comment. ''' + # Verify we have the Comment object and not any other type e.g. TextComment + if not isinstance(comment, Comment): + raise ValueError("Must provide Comment to trigger_notification") + + # Get the associated object associated to the Comment wrapper. + comment_object = comment.comment() + subscriptions = CommentSubscription.query.filter_by( media_entry_id=media_entry.id).all() for subscription in subscriptions: + # Check the user wants to be notified, if not, skip. if not subscription.notify: continue - if comment.get_actor == subscription.user: + # If the subscriber is the current actor, don't bother. + if comment_object.get_actor == subscription.user: continue cn = Notification( @@ -61,7 +70,7 @@ def mark_notification_seen(notification): def mark_comment_notification_seen(comment_id, user): - comment = Comment.query.get(comment_id).comment() + comment = Comment.query.get(comment_id) comment_gmr = GenericModelReference.query.filter_by( obj_pk=comment.id, model_type=comment.__tablename__ diff --git a/mediagoblin/notifications/tools.py b/mediagoblin/notifications/tools.py index 69017ed0..b251f0aa 100644 --- a/mediagoblin/notifications/tools.py +++ b/mediagoblin/notifications/tools.py @@ -18,32 +18,38 @@ from mediagoblin.tools.template import render_template from mediagoblin.tools.translate import pass_to_ugettext as _ from mediagoblin import mg_globals -def generate_comment_message(user, comment, media, request): +def generate_comment_message(user, comment, commentee, request): """ Sends comment email to user when a comment is made on their media. Args: - user: the user object to whom the email is sent - - comment: the comment object referencing user's media - - media: the media object the comment is about + - comment: the comment wrapper object + - commentee: the object the comment is on - request: the request """ + # Get the comment object associated to the wrapper + comment_object = comment.comment() + + # Get the URL to the comment comment_url = request.urlgen( - 'mediagoblin.user_pages.media_home.view_comment', - comment=comment.id, - user=media.get_actor.username, - media=media.slug_or_id, - qualified=True) + '#comment' + "mediagoblin.user_pages.media_home.view_comment", + comment=comment.id, + user=commentee.get_actor.username, + media=commentee.slug_or_id, + qualified=True) + "#comment" - comment_author = comment.get_actor.username + comment_author = comment.comment().get_actor.username rendered_email = render_template( request, 'mediagoblin/user_pages/comment_email.txt', {'username': user.username, 'comment_author': comment_author, - 'comment_content': comment.content, - 'comment_url': comment_url}) + 'comment_content': comment_object.content, + 'comment_url': comment_url + } + ) return { 'from': mg_globals.app_config['email_sender_address'], @@ -52,4 +58,5 @@ def generate_comment_message(user, comment, media, request): comment_author=comment_author, instance_title=mg_globals.app_config['html_title']) \ + _('commented on your post'), - 'body': rendered_email} + 'body': rendered_email + } diff --git a/mediagoblin/notifications/views.py b/mediagoblin/notifications/views.py index 984b9c9b..7298e964 100644 --- a/mediagoblin/notifications/views.py +++ b/mediagoblin/notifications/views.py @@ -58,7 +58,7 @@ def mark_all_comment_notifications_seen(request): """ for comment in get_notifications(request.user.id): mark_comment_notification_seen( - comment.obj().get_comment_link().id, + comment.id, request.user ) |