X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/2e9d59591e9cfc93c24a96b9dc51ce5dd2ce5a03..c9c3cb4c714911710f606f8dc47d5e65707aff67:/forum/subscriptions.py diff --git a/forum/subscriptions.py b/forum/subscriptions.py index 34bbf98..7a5bf06 100644 --- a/forum/subscriptions.py +++ b/forum/subscriptions.py @@ -15,6 +15,14 @@ def create_subscription_if_not_exists(question, user): subscription = QuestionSubscription(question=question, user=user) subscription.save() +def filter_subscribers(subscribers): + subscribers = subscribers.exclude(is_active=False) + + if settings.DONT_NOTIFY_UNVALIDATED: + return subscribers.exclude(email_isvalid=False) + else: + return subscribers + def question_posted(action, new): question = action.node @@ -25,6 +33,8 @@ def question_posted(action, new): Q(tag_selections__reason='good')) ).exclude(id=question.author.id).distinct() + subscribers = filter_subscribers(subscribers) + send_template_email(subscribers, "notifications/newquestion.html", {'question': question}) if question.author.subscription_settings.questions_asked: @@ -53,6 +63,8 @@ def answer_posted(action, new): subscription_settings__subscribed_questions='i' ).exclude(id=answer.author.id).distinct() + subscribers = filter_subscribers(subscribers) + send_template_email(subscribers, "notifications/newanswer.html", {'answer': answer}) if answer.author.subscription_settings.questions_answered: @@ -82,6 +94,8 @@ def comment_posted(action, new): q_filter, subscription_settings__subscribed_questions='i', subscription_settings__enable_notifications=True ).exclude(id=comment.user.id).distinct() + subscribers = filter_subscribers(subscribers) + send_template_email(subscribers, "notifications/newcomment.html", {'comment': comment}) @@ -100,6 +114,8 @@ def answer_accepted(action, new): subscription_settings__subscribed_questions='i' ).exclude(id=action.node.nstate.accepted.by.id).distinct() + subscribers = filter_subscribers(subscribers) + send_template_email(subscribers, "notifications/answeraccepted.html", {'answer': action.node}) AcceptAnswerAction.hook(answer_accepted) @@ -111,6 +127,8 @@ def member_joined(action, new): subscription_settings__member_joins='i' ).exclude(id=action.user.id).distinct() + subscribers = filter_subscribers(subscribers) + send_template_email(subscribers, "notifications/newmember.html", {'newmember': action.user}) UserJoinsAction.hook(member_joined)