Skip to content

Commit

Permalink
Adds the option to exclude users with unvalidate emails from notifica…
Browse files Browse the repository at this point in the history
…tions.

git-svn-id: http://svn.osqa.net/svnroot/osqa/trunk@504 0cfe37f9-358a-4d5e-be75-b63607b5c754
  • Loading branch information
hernani committed Jul 8, 2010
1 parent e1bb6d8 commit 61486d2
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 0 deletions.
5 changes: 5 additions & 0 deletions forum/settings/users.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,11 @@
required=False,
))

DONT_NOTIFY_UNVALIDATED = Setting('DONT_NOTIFY_UNVALIDATED', True, USERS_SET, dict(
label = _("Don't notify to invalid emails"),
help_text = _("Do not notify users with unvalidated emails."),
required=False))

HOLD_PENDING_POSTS_MINUTES = Setting('HOLD_PENDING_POSTS_MINUTES', 120, USERS_SET, dict(
label=_("Hold pending posts for X minutes"),
help_text=_("How much time in minutes a post should be kept in session until the user logs in or validates the email.")
Expand Down
18 changes: 18 additions & 0 deletions forum/subscriptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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:
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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})

Expand All @@ -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)
Expand All @@ -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)
Expand Down

0 comments on commit 61486d2

Please sign in to comment.