Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
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))
Exemple #4
0
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))