本文整理汇总了Python中kbforums.events.NewPostEvent.notify方法的典型用法代码示例。如果您正苦于以下问题:Python NewPostEvent.notify方法的具体用法?Python NewPostEvent.notify怎么用?Python NewPostEvent.notify使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类kbforums.events.NewPostEvent
的用法示例。
在下文中一共展示了NewPostEvent.notify方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: reply
# 需要导入模块: from kbforums.events import NewPostEvent [as 别名]
# 或者: from kbforums.events.NewPostEvent import notify [as 别名]
def reply(request, document_slug, thread_id):
"""Reply to a thread."""
doc = get_document(document_slug, request)
form = ReplyForm(request.POST)
post_preview = None
if form.is_valid():
thread = get_object_or_404(Thread, pk=thread_id, document=doc)
if not thread.is_locked:
reply_ = form.save(commit=False)
reply_.thread = thread
reply_.creator = request.user
if 'preview' in request.POST:
post_preview = reply_
else:
reply_.save()
statsd.incr('kbforums.reply')
# Subscribe the user to the thread.
if Setting.get_for_user(request.user,
'kbforums_watch_after_reply'):
NewPostEvent.notify(request.user, thread)
# Send notifications to thread/forum watchers.
NewPostEvent(reply_).fire(exclude=reply_.creator)
return HttpResponseRedirect(reply_.get_absolute_url())
return posts(request, document_slug, thread_id, form, post_preview)
示例2: new_thread
# 需要导入模块: from kbforums.events import NewPostEvent [as 别名]
# 或者: from kbforums.events.NewPostEvent import notify [as 别名]
def new_thread(request, document_slug):
"""Start a new thread."""
doc = get_document(document_slug, request)
if request.method == "GET":
form = NewThreadForm()
return jingo.render(request, "kbforums/new_thread.html", {"form": form, "document": doc})
form = NewThreadForm(request.POST)
post_preview = None
if form.is_valid():
if "preview" in request.POST:
thread = Thread(creator=request.user, title=form.cleaned_data["title"])
post_preview = Post(thread=thread, creator=request.user, content=form.cleaned_data["content"])
else:
thread = doc.thread_set.create(creator=request.user, title=form.cleaned_data["title"])
thread.save()
statsd.incr("kbforums.thread")
post = thread.new_post(creator=request.user, content=form.cleaned_data["content"])
post.save()
# Send notifications to forum watchers.
NewThreadEvent(post).fire(exclude=post.creator)
# Add notification automatically if needed.
if Setting.get_for_user(request.user, "kbforums_watch_new_thread"):
NewPostEvent.notify(request.user, thread)
return HttpResponseRedirect(reverse("wiki.discuss.posts", args=[document_slug, thread.id]))
return jingo.render(
request, "kbforums/new_thread.html", {"form": form, "document": doc, "post_preview": post_preview}
)
示例3: watch_thread
# 需要导入模块: from kbforums.events import NewPostEvent [as 别名]
# 或者: from kbforums.events.NewPostEvent import notify [as 别名]
def watch_thread(request, document_slug, thread_id):
"""Watch/unwatch a thread (based on 'watch' POST param)."""
doc = get_document(document_slug, request)
thread = get_object_or_404(Thread, pk=thread_id, document=doc)
if request.POST.get('watch') == 'yes':
NewPostEvent.notify(request.user, thread)
else:
NewPostEvent.stop_notifying(request.user, thread)
return HttpResponseRedirect(reverse('wiki.discuss.posts',
args=[document_slug, thread_id]))
示例4: watch_thread
# 需要导入模块: from kbforums.events import NewPostEvent [as 别名]
# 或者: from kbforums.events.NewPostEvent import notify [as 别名]
def watch_thread(request, document_slug, thread_id):
"""Watch/unwatch a thread (based on 'watch' POST param)."""
doc = get_document(document_slug, request)
thread = get_object_or_404(Thread, pk=thread_id, document=doc)
if request.POST.get("watch") == "yes":
NewPostEvent.notify(request.user, thread)
statsd.incr("kbforums.watches.thread")
else:
NewPostEvent.stop_notifying(request.user, thread)
return HttpResponseRedirect(reverse("wiki.discuss.posts", args=[document_slug, thread_id]))
示例5: new_thread
# 需要导入模块: from kbforums.events import NewPostEvent [as 别名]
# 或者: from kbforums.events.NewPostEvent import notify [as 别名]
def new_thread(request, document_slug):
"""Start a new thread."""
doc = get_document(document_slug, request)
if request.method == 'GET':
form = NewThreadForm()
return render(request, 'kbforums/new_thread.html', {
'form': form, 'document': doc})
form = NewThreadForm(request.POST)
post_preview = None
if form.is_valid():
if 'preview' in request.POST:
thread = Thread(creator=request.user,
title=form.cleaned_data['title'])
post_preview = Post(thread=thread, creator=request.user,
content=form.cleaned_data['content'])
else:
thread = doc.thread_set.create(creator=request.user,
title=form.cleaned_data['title'])
thread.save()
statsd.incr('kbforums.thread')
post = thread.new_post(creator=request.user,
content=form.cleaned_data['content'])
post.save()
# Send notifications to forum watchers.
NewThreadEvent(post).fire(exclude=post.creator)
# Add notification automatically if needed.
if Setting.get_for_user(request.user, 'kbforums_watch_new_thread'):
NewPostEvent.notify(request.user, thread)
return HttpResponseRedirect(
reverse('wiki.discuss.posts', args=[document_slug, thread.id]))
return render(request, 'kbforums/new_thread.html', {
'form': form, 'document': doc,
'post_preview': post_preview})
示例6: test_delete_removes_watches
# 需要导入模块: from kbforums.events import NewPostEvent [as 别名]
# 或者: from kbforums.events.NewPostEvent import notify [as 别名]
def test_delete_removes_watches(self):
t = Thread.objects.get(pk=1)
NewPostEvent.notify('[email protected]', t)
assert NewPostEvent.is_notifying('[email protected]', t)
t.delete()
assert not NewPostEvent.is_notifying('[email protected]', t)