def reply(request, document_slug, thread_id): """Reply to a thread.""" doc = get_document(document_slug, request) form = ReplyForm(request.POST) reply_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: reply_preview = reply_ else: reply_.save() statsd.incr('kbforums.reply') # 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, reply_preview)
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)
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)
def posts(request, document_slug, thread_id, form=None, reply_preview=None): """View all the posts in a thread.""" doc = get_document(document_slug, request) thread = get_object_or_404(Thread, pk=thread_id, document=doc) posts_ = paginate(request, thread.post_set.all(), kbforums.POSTS_PER_PAGE) if not form: form = ReplyForm() feed_urls = ((reverse('wiki.discuss.posts.feed', kwargs={ 'document_slug': document_slug, 'thread_id': thread_id }), PostsFeed().title(thread)), ) is_watching_thread = (request.user.is_authenticated() and NewPostEvent.is_notifying(request.user, thread)) return jingo.render( request, 'kbforums/posts.html', { 'document': doc, 'thread': thread, 'posts': posts_, 'form': form, 'reply_preview': reply_preview, 'is_watching_thread': is_watching_thread, 'feeds': feed_urls })
def reply(request, document_slug, thread_id): """Reply to a thread.""" doc = get_document(document_slug, request) form = ReplyForm(request.POST) reply_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: reply_preview = reply_ else: reply_.save() # 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, reply_preview)