本文整理汇总了Python中forum.models.QuestionSubscription类的典型用法代码示例。如果您正苦于以下问题:Python QuestionSubscription类的具体用法?Python QuestionSubscription怎么用?Python QuestionSubscription使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了QuestionSubscription类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: question_posted
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)
示例2: question_posted
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)
示例3: create_subscription_if_not_exists
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()
示例4: question_viewed
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()
示例5: handle_noargs
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()
示例6: question_viewed
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()
示例7: create_subscription_if_not_exists
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)
示例8: question_viewed
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()
示例9: create_subscription_for_mailing_list
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()
示例10: question_posted
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)
示例11: question_posted
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)