def forum_comment_add(request, forum_slug, thread_slug, parent_id=None): thread = get_object_or_404(Thread, slug=thread_slug, forum__slug=forum_slug) if thread.closed: raise Http404 if request.POST: form = CaptchaForumThreadCommentForm(user=request.user, data=request.POST) else: if request.is_ajax(): return forum_comment_form(request, thread, parent_id) else: return forum_comment_form( request, thread, parent_id, template='forum/forum_comment_preview.html') if form.is_valid(): new_comment = form.save(commit=False) new_comment.ip_address = request.META.get('REMOTE_ADDR', None) new_comment.user = request.user new_comment.thread = thread if parent_id: new_comment.parent = get_object_or_404(ForumThreadComment, id=int(parent_id)) new_comment.save() if request.user and not request.user.is_anonymous(): request.user.message_set.create( message=_("Your message has been posted successfully.")) if request.is_ajax(): moderation = request.user and ( request.user.is_superuser or has_permission( thread.forum, request.user, 'moderate_forum')) is_auth = request.user and request.user.is_authenticated() return render_to_response( 'forum/thread_comment.html', { 'thread': thread, 'parent_id': parent_id, 'is_moderated': moderation, 'actions': (moderation or not thread.closed) and is_auth, 'comment': new_comment }, context_instance=RequestContext(request)) else: return HttpResponseRedirect(thread.get_absolute_url()) else: template = 'forum/forum_comment_preview.html' if request.is_ajax(): template = 'forum/forum_comment_add.html' return forum_comment_form(request, thread, parent_id, template=template, form=form)
def forum_comment_add(request, forum_slug, thread_slug, parent_id=None): thread = get_object_or_404(Thread, slug=thread_slug, forum__slug=forum_slug) if thread.closed: raise Http404 if request.POST: form = CaptchaForumThreadCommentForm(user=request.user, data=request.POST) else: if request.is_ajax(): return forum_comment_form(request, thread, parent_id) else: return forum_comment_form(request, thread, parent_id, template='forum/forum_comment_preview.html') if form.is_valid(): new_comment = form.save(commit=False) new_comment.ip_address = request.META.get('REMOTE_ADDR', None) new_comment.user = request.user new_comment.thread = thread if parent_id: new_comment.parent = get_object_or_404(ForumThreadComment, id=int(parent_id)) new_comment.save() if request.user and not request.user.is_anonymous(): request.user.message_set.create(message=_("Your message has been posted successfully.")) if request.is_ajax(): moderation = request.user and (request.user.is_superuser or has_permission(thread.forum, request.user, 'moderate_forum')) is_auth = request.user and request.user.is_authenticated() return render_to_response('forum/thread_comment.html', {'thread': thread, 'parent_id': parent_id, 'is_moderated': moderation, 'actions': (moderation or not thread.closed) and is_auth, 'comment': new_comment}, context_instance=RequestContext(request)) else: return HttpResponseRedirect(thread.get_absolute_url()) else: template = 'forum/forum_comment_preview.html' if request.is_ajax(): template = 'forum/forum_comment_add.html' return forum_comment_form(request, thread, parent_id, template=template, form=form)
def forum_comment_form(request, content, parent_id, form=None, template='forum/forum_comment_add.html'): if not form: if request.POST: form = CaptchaForumThreadCommentForm(user=request.user, data=request.POST) else: form = CaptchaForumThreadCommentForm(user=request.user) if parent_id: parent = get_object_or_404(ForumThreadComment, id=int(parent_id)) form.initial = {'title': 'Re: %s' % parent.title} else: form.initial = {'title': 'Re: %s' % content.name} return render_to_response(template, {'thread': content, 'comment': form.instance, 'parent_id': parent_id, 'form': form, 'errors': form.errors, }, context_instance=RequestContext(request))
def forum_comment_form(request, content, parent_id, form=None, template='forum/forum_comment_add.html'): if not form: if request.POST: form = CaptchaForumThreadCommentForm(user=request.user, data=request.POST) else: form = CaptchaForumThreadCommentForm(user=request.user) if parent_id: parent = get_object_or_404(ForumThreadComment, id=int(parent_id)) form.initial = {'title': 'Re: %s' % parent.title} else: form.initial = {'title': 'Re: %s' % content.name} return render_to_response(template, { 'thread': content, 'comment': form.instance, 'parent_id': parent_id, 'form': form, 'errors': form.errors, }, context_instance=RequestContext(request))