Commit 9eec00cc authored by Deimos's avatar Deimos

Prevent comment notifications from ignored topics

This stops sending comment notifications from both replies and mentions
if the potential notification recipient is ignoring the topic.
parent 2434e06e
......@@ -16,6 +16,7 @@ from sqlalchemy.sql.expression import text
from tildes.enums import CommentNotificationType
from tildes.lib.markdown import LinkifyFilter
from tildes.models import DatabaseModel
from tildes.models.topic import TopicIgnore
from tildes.models.user import User
from .comment import Comment
......@@ -82,6 +83,18 @@ class CommentNotification(DatabaseModel):
if not comment.parent.user.is_real_user:
return False
# check if the parent's author is ignoring the topic
if (
Session.object_session(comment)
.query(TopicIgnore)
.filter(
TopicIgnore.user == comment.parent.user,
TopicIgnore.topic == comment.topic,
)
.one_or_none()
):
return False
return True
@property
......@@ -123,6 +136,14 @@ class CommentNotification(DatabaseModel):
if comment.parent.user == user:
continue
# prevent mentioning users ignoring the topic
if (
db_session.query(TopicIgnore)
.filter(TopicIgnore.user == user, TopicIgnore.topic == comment.topic)
.one_or_none()
):
continue
mention_notification = cls(
user, comment, CommentNotificationType.USER_MENTION
)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment