import os\r
import re\r
import datetime\r
+import logging\r
from forum.models import User, Question, Comment, QuestionSubscription, SubscriptionSettings, Answer\r
-from forum.utils.mail import send_email, send_template_email\r
+from forum.utils.mail import send_template_email\r
from django.utils.translation import ugettext as _\r
from forum.actions import AskAction, AnswerAction, CommentAction, AcceptAnswerAction, UserJoinsAction, QuestionViewAction\r
from forum import settings\r
subscription = QuestionSubscription(question=question, user=user)\r
subscription.save()\r
\r
+def filter_subscribers(subscribers):\r
+ subscribers = subscribers.exclude(is_active=False)\r
+\r
+ if settings.DONT_NOTIFY_UNVALIDATED:\r
+ return subscribers.exclude(email_isvalid=False)\r
+ else:\r
+ return subscribers\r
+\r
def question_posted(action, new):\r
question = action.node\r
\r
Q(tag_selections__reason='good'))\r
).exclude(id=question.author.id).distinct()\r
\r
+ subscribers = filter_subscribers(subscribers)\r
+\r
send_template_email(subscribers, "notifications/newquestion.html", {'question': question})\r
\r
- if question.author.subscription_settings.questions_asked:\r
- subscription = QuestionSubscription(question=question, user=question.author)\r
- subscription.save()\r
+ subscription = QuestionSubscription(question=question, user=question.author)\r
+ subscription.save()\r
\r
new_subscribers = User.objects.filter(\r
Q(subscription_settings__all_questions=True) |\r
subscription_settings__subscribed_questions='i'\r
).exclude(id=answer.author.id).distinct()\r
\r
+ subscribers = filter_subscribers(subscribers)\r
+\r
send_template_email(subscribers, "notifications/newanswer.html", {'answer': answer})\r
\r
- if answer.author.subscription_settings.questions_answered:\r
- create_subscription_if_not_exists(question, answer.author)\r
+ create_subscription_if_not_exists(question, answer.author)\r
\r
AnswerAction.hook(answer_posted)\r
\r
q_filter, subscription_settings__subscribed_questions='i', subscription_settings__enable_notifications=True\r
).exclude(id=comment.user.id).distinct()\r
\r
+ subscribers = filter_subscribers(subscribers)\r
+\r
\r
send_template_email(subscribers, "notifications/newcomment.html", {'comment': comment})\r
\r
- if comment.user.subscription_settings.questions_commented:\r
- create_subscription_if_not_exists(question, comment.user)\r
+ create_subscription_if_not_exists(question, comment.user)\r
\r
CommentAction.hook(comment_posted)\r
\r
\r
subscribers = question.subscribers.filter(\r
subscription_settings__enable_notifications=True,\r
- subscription_settings__notify_accepted=True,\r
subscription_settings__subscribed_questions='i'\r
).exclude(id=action.node.nstate.accepted.by.id).distinct()\r
+ \r
+ subscribers = filter_subscribers(subscribers)\r
\r
send_template_email(subscribers, "notifications/answeraccepted.html", {'answer': action.node})\r
\r
subscription_settings__member_joins='i'\r
).exclude(id=action.user.id).distinct()\r
\r
+ subscribers = filter_subscribers(subscribers)\r
+\r
send_template_email(subscribers, "notifications/newmember.html", {'newmember': action.user})\r
\r
UserJoinsAction.hook(member_joined)\r
#\r
# q_author.message_set.create(message=msg)\r
#\r
-#post_save.connect(record_answer_event, sender=Answer)
\ No newline at end of file
+#post_save.connect(record_answer_event, sender=Answer)\r