def create_subscription_if_not_exists(question, user):
try:
subscription = QuestionSubscription.objects.get(question=question, user=user)
- except:
+ return subscription
+ except QuestionSubscription.MultipleObjectsReturned:
+ pass
+ except QuestionSubscription.DoesNotExist:
subscription = QuestionSubscription(question=question, user=user)
subscription.save()
+ return subscription
+ except Exception, e:
+ logging.error(e)
+
+ return False
def filter_subscribers(subscribers):
subscribers = subscribers.exclude(is_active=False)
def question_posted(action, new):
question = action.node
+ if not question.is_notifiable:
+ return
+
subscribers = User.objects.filter(
Q(subscription_settings__enable_notifications=True, subscription_settings__new_question='i') |
(Q(subscription_settings__new_question_watched_tags='i') &
answer = action.node
question = answer.question
+ logging.error("Answer posted: %s" % str(answer.is_notifiable))
+
+ if not answer.is_notifiable or not question.is_notifiable:
+ return
+
subscribers = question.subscribers.filter(
subscription_settings__enable_notifications=True,
subscription_settings__notify_answers=True,
comment = action.node
post = comment.parent
+ if not comment.is_notifiable or not post.is_notifiable:
+ return
+
if post.__class__ == Question:
question = post
else:
def answer_accepted(action, new):
question = action.node.question
+ if not question.is_notifiable:
+ return
+
subscribers = question.subscribers.filter(
subscription_settings__enable_notifications=True,
subscription_settings__subscribed_questions='i'