Example #1
0
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') &
              Q(marked_tags__name__in=question.tagnames.split(' ')) &
              Q(tag_selections__reason='good'))
    ).exclude(id=question.author.id).distinct()

    subscribers = filter_subscribers(subscribers)

    send_template_email(subscribers, "notifications/newquestion.html", {'question': question})

    subscription = QuestionSubscription(question=question, user=question.author)
    subscription.save()

    new_subscribers = User.objects.filter(
            Q(subscription_settings__all_questions=True) |
            Q(subscription_settings__all_questions_watched_tags=True,
                    marked_tags__name__in=question.tagnames.split(' '),
                    tag_selections__reason='good'))

    for user in new_subscribers:
        create_subscription_if_not_exists(question, user)
Example #2
0
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')
           & Q(marked_tags__name__in=question.tagnames.split(' '))
           & Q(tag_selections__reason='good'))).exclude(
               id=question.author.id).distinct()

    subscribers = filter_subscribers(subscribers)

    send_template_email(subscribers, "notifications/newquestion.html",
                        {'question': question})

    subscription = QuestionSubscription(question=question,
                                        user=question.author)
    subscription.save()

    new_subscribers = User.objects.filter(
        Q(subscription_settings__all_questions=True)
        | Q(subscription_settings__all_questions_watched_tags=True,
            marked_tags__name__in=question.tagnames.split(' '),
            tag_selections__reason='good'))

    for user in new_subscribers:
        create_subscription_if_not_exists(question, user)
Example #3
0
def create_subscription_if_not_exists(question, user):
    try:
        subscription = QuestionSubscription.objects.get(question=question,
                                                        user=user)
    except:
        subscription = QuestionSubscription(question=question, user=user)
        subscription.save()
Example #4
0
def question_posted(instance, **kwargs):
    question = instance

    subscribers = User.objects.values('email', 'username').filter(
            Q(subscription_settings__enable_notifications=True, subscription_settings__new_question='i') |
            (Q(subscription_settings__new_question_watched_tags='i') &
              Q(marked_tags__name__in=question.tagnames.split(' ')) &
              Q(tag_selections__reason='good'))
    ).exclude(id=question.author.id).distinct()

    recipients = create_recipients_dict(subscribers)

    send_email(settings.EMAIL_SUBJECT_PREFIX + _("New question on %(app_name)s") % dict(app_name=settings.APP_SHORT_NAME),
               recipients, "notifications/newquestion.html", {
        'question': question,
    })

    if question.author.subscription_settings.questions_asked:
        subscription = QuestionSubscription(question=question, user=question.author)
        subscription.save()

    new_subscribers = User.objects.filter(
            Q(subscription_settings__all_questions=True) |
            Q(subscription_settings__all_questions_watched_tags=True,
                    marked_tags__name__in=question.tagnames.split(' '),
                    tag_selections__reason='good'))

    for user in new_subscribers:
        create_subscription_if_not_exists(question, user)
Example #5
0
def question_posted(sender, instance, **kwargs):
    question = instance.content_object

    subscribers = User.objects.values('email', 'username').filter(
            Q(subscription_settings__enable_notifications=True, subscription_settings__new_question='i') |
            (Q(subscription_settings__new_question_watched_tags='i') &
              Q(marked_tags__name__in=question.tagnames.split(' ')) &
              Q(tag_selections__reason='good'))
    ).exclude(id=question.author.id)

    recipients = create_recipients_dict(subscribers)

    send_email(settings.EMAIL_SUBJECT_PREFIX + _("New question on %s") % settings.APP_SHORT_NAME,
               recipients, "notifications/newquestion.html", {
        'question': question,
    })

    if question.author.subscription_settings.questions_asked:
        subscription = QuestionSubscription(question=question, user=question.author)
        subscription.save()

    new_subscribers = User.objects.filter(
            Q(subscription_settings__all_questions=True) |
            Q(subscription_settings__all_questions_watched_tags=True,
                    marked_tags__name__in=question.tagnames.split(' '),
                    tag_selections__reason='good'))

    for user in new_subscribers:
        create_subscription_if_not_exists(question, user)
Example #6
0
def create_subscription_if_not_exists(question, user):
    try:
        subscription = QuestionSubscription.objects.get(
            question=question, user=user)
    except:
        subscription = QuestionSubscription(question=question, user=user)
        subscription.save()
Example #7
0
def question_viewed(sender, user, **kwargs):
    try:
        subscription = QuestionSubscription.objects.get(question=sender, user=user)
        subscription.last_view = datetime.datetime.now()
        subscription.save()
    except:
        if user.subscription_settings.questions_viewed:
            subscription = QuestionSubscription(question=sender, user=user)
            subscription.save()
Example #8
0
    def handle_noargs(self, **options):
        users = User.objects.all()
        for u in users:
            s = SubscriptionSettings(user=u)
            s.save()

            user_questions = u.questions.all()

            for q in user_questions:
                sub = QuestionSubscription(user=u, question=q)
                sub.save()
Example #9
0
    def handle_noargs(self, **options):
        users = User.objects.all()
        for u in users:
            s = SubscriptionSettings(user=u)
            s.save()

            user_questions = u.questions.all()

            for q in user_questions:
                sub = QuestionSubscription(user=u, question=q)
                sub.save()
Example #10
0
def question_viewed(action, new):
    if not action.viewuser.is_authenticated():
        return

    try:
        subscription = QuestionSubscription.objects.get(question=action.node, user=action.viewuser)
        subscription.last_view = datetime.datetime.now()
        subscription.save()
    except:
        if action.viewuser.subscription_settings.questions_viewed:
            subscription = QuestionSubscription(question=action.node, user=action.viewuser)
            subscription.save()
Example #11
0
def question_viewed(instance, user, **kwargs):
    if not user.is_authenticated():
        return

    try:
        subscription = QuestionSubscription.objects.get(question=instance, user=user)
        subscription.last_view = datetime.datetime.now()
        subscription.save()
    except:
        if user.subscription_settings.questions_viewed:
            subscription = QuestionSubscription(question=instance, user=user)
            subscription.save()
Example #12
0
def question_viewed(action, new):
    if not action.viewuser.is_authenticated():
        return

    try:
        subscription = QuestionSubscription.objects.get(question=action.node, user=action.viewuser)
        subscription.last_view = datetime.datetime.now()
        subscription.save()
    except:
        if action.viewuser.subscription_settings.questions_viewed:
            subscription = QuestionSubscription(question=action.node, user=action.viewuser)
            subscription.save()
Example #13
0
def create_subscription_if_not_exists(question, user):
    try:
        subscription = QuestionSubscription.objects.get(question=question, user=user)
        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)
Example #14
0
def question_viewed(instance, user, **kwargs):
    if not user.is_authenticated():
        return
        
    try:
        subscription = QuestionSubscription.objects.get(question=instance, user=user)
        subscription.last_view = datetime.datetime.now()
        subscription.save()
    except:
        if user.subscription_settings.questions_viewed:
            subscription = QuestionSubscription(question=instance, user=user)
            subscription.save()
Example #15
0
def create_subscription_if_not_exists(question, user):
    try:
        subscription = QuestionSubscription.objects.get(question=question, user=user)
        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)
Example #16
0
def create_subscription_for_mailing_list(question,userquery):
        userlist = [user for user in userquery if user != question.author]
        existingUserList = [subscription.user for  subscription in QuestionSubscription.objects.filter(question=question)]

## remove deleted Mailing List subscriptions
        for sub_remove in list(set(existingUserList) - set (userlist)):
                subscriptions = QuestionSubscription.objects.filter(question=question, user=sub_remove)
                subscriptions.delete()

## Add Mailing List subscriptions
        for sub_add in list(set(userlist) - set (existingUserList)):
                subscription = QuestionSubscription(question=question, user=sub_add)
                subscription.save()
Example #17
0
def question_posted(instance, **kwargs):
    question = instance

    subscribers = (
        User.objects.values("email", "username")
        .filter(
            Q(subscription_settings__enable_notifications=True, subscription_settings__new_question="i")
            | (
                Q(subscription_settings__new_question_watched_tags="i")
                & Q(marked_tags__name__in=question.tagnames.split(" "))
                & Q(tag_selections__reason="good")
            )
        )
        .exclude(id=question.author.id)
        .distinct()
    )

    recipients = create_recipients_dict(subscribers)

    send_email(
        settings.EMAIL_SUBJECT_PREFIX + _("New question on %(app_name)s") % dict(app_name=settings.APP_SHORT_NAME),
        recipients,
        "notifications/newquestion.html",
        {"question": question},
    )

    if question.author.subscription_settings.questions_asked:
        subscription = QuestionSubscription(question=question, user=question.author)
        subscription.save()

    new_subscribers = User.objects.filter(
        Q(subscription_settings__all_questions=True)
        | Q(
            subscription_settings__all_questions_watched_tags=True,
            marked_tags__name__in=question.tagnames.split(" "),
            tag_selections__reason="good",
        )
    )

    for user in new_subscribers:
        create_subscription_if_not_exists(question, user)
Example #18
0
def question_posted(action, new):
    question = action.node

    if not question.is_notifiable:
        return

    '''
## Mailing List Depending Upon Category
    _recipient_ids = ",".join([category.mail_recipients for category in OsqaCategory.objects.filter(id__in = question.category.split(','))]).split(",")
    recipient_ids =[ recipient.strip()  for recipient in _recipient_ids if recipient.strip() ]
    if len(recipient_ids):
        category_subscribers = User.objects.filter(id__in =recipient_ids ).distinct()
        all_subscribers = category_subscribers

## Mailing List Subscribers
    recipient_list = [ recipient.strip()  for recipient in question.recipientnames.split(',') if recipient.strip() ]

    if len(recipient_list):
        mailing_subscribers = User.objects.filter(id__in = recipient_list ).distinct()

        if len(recipient_ids):
                all_subscribers = category_subscribers  | mailing_subscribers
        else:
                all_subscribers = mailing_subscribers
    '''
    send_template_email(all_subscribers, "notifications/newquestion.html", {'question': question})

    subscription = QuestionSubscription(question=question, user=question.author)
    subscription.save()

    new_subscribers = User.objects.filter(
            Q(subscription_settings__all_questions=True) |
            Q(subscription_settings__all_questions_watched_tags=True,
                    marked_tags__name__in=question.tagnames.split(' '),
                    tag_selections__reason='good'))

    for user in new_subscribers:
        create_subscription_if_not_exists(question, user)