Exemple #1
0
def thread_add_view(request, category_id):
    category = get_object_or_404(Category, id=category_id)
    if request.method == 'POST':
        form = NewThreadForm(request, request.POST)
        if form.is_valid():  # adding the new thread
            instance = form.save(commit=False)
            instance.category = category
            instance.save()
            post = PostForm(request, request.POST)
            if post.is_valid():  # adding the new post
                inst_post = post.save(commit=False)
                inst_post.author = request.user
                inst_post.thread = instance
                inst_post.add_date = request.timestamp
                inst_post.save()
                return redirect('forum_thread',
                                contest_id=request.contest.id,
                                category_id=category.id,
                                thread_id=instance.id)
    else:
        form = NewThreadForm(request)

    return TemplateResponse(
        request, 'forum/thread_add.html', {
            'forum': request.contest.forum,
            'category': category,
            'form': form,
            'msgs': get_msgs(request)
        })
Exemple #2
0
def thread_view(request, category_id, thread_id):
    category, thread = get_forum_ct(category_id, thread_id)
    forum, lock = request.contest.forum, forum_is_locked(request)
    msgs = get_msgs(request)
    post_set = thread.post_set.select_related('author').all()
    if (request.user.is_authenticated() and not lock) or \
       is_contest_admin(request):
        if request.method == "POST":
            form = PostForm(request, request.POST)
            if form.is_valid():
                instance = form.save(commit=False)
                instance.author = request.user
                instance.thread = thread
                instance.add_date = request.timestamp
                instance.save()
                return redirect('forum_thread', contest_id=request.contest.id,
                                category_id=category.id,
                                thread_id=thread.id)
        else:
            form = PostForm(request)

        return TemplateResponse(request, 'forum/thread.html',
            {'forum': forum, 'category': category, 'thread': thread,
             'form': form, 'msgs': msgs, 'is_locked': lock,
             'post_set': post_set})
    else:
        return TemplateResponse(request, 'forum/thread.html',
            {'forum': forum, 'category': category, 'thread': thread,
             'msgs': msgs, 'is_locked': lock, 'post_set': post_set})
Exemple #3
0
def thread_add_view(request, category_id):
    category = get_object_or_404(Category, id=category_id)
    msgs = get_msgs(request)
    if request.method == 'POST':
        form = NewThreadForm(request, request.POST)
        if form.is_valid():  # adding the new thread
            instance = form.save(commit=False)
            instance.category = category
            instance.save()
            post = PostForm(request, request.POST)
            if post.is_valid():  # adding the new post
                inst_post = post.save(commit=False)
                inst_post.author = request.user
                inst_post.thread = instance
                inst_post.add_date = request.timestamp
                inst_post.save()
                return redirect('forum_thread', contest_id=request.contest.id,
                                category_id=category.id,
                                thread_id=instance.id)
    else:
        form = NewThreadForm(request)

    return TemplateResponse(request, 'forum/thread_add.html',
        {'forum': request.contest.forum, 'category': category,
         'form': form, 'msgs': msgs})
Exemple #4
0
def thread_view(request, contest_id, category_id, thread_id):
    (forum, category, thread, lock) = get_forum_objects(request,
                                                  category_id, thread_id,
                                                  lock_required=True)
    msgs = get_msgs(forum, request)
    if (request.user.is_authenticated() and
       not request.contest.forum.is_locked(request.timestamp)) or \
       is_contest_admin(request):
        if request.method == "POST":
            form = PostForm(request, request.POST)
            if form.is_valid():
                instance = form.save(commit=False)
                instance.author = request.user
                instance.thread = thread
                instance.add_date = request.timestamp
                instance.save()
                return redirect('forum_thread', contest_id=contest_id,
                                category_id=category.id,
                                thread_id=thread.id)
        else:
            form = PostForm(request)

        return TemplateResponse(request, 'forum/thread.html',
            {'forum': forum, 'category': category, 'thread': thread,
             'form': form, 'msgs': msgs, 'is_locked': lock})
    else:
        return TemplateResponse(request, 'forum/thread.html',
            {'forum': forum, 'category': category, 'thread': thread,
             'msgs': msgs, 'is_locked': lock})
Exemple #5
0
def thread_view(request, category_id, thread_id):
    category, thread = get_forum_ct(category_id, thread_id)
    forum = request.contest.forum

    context = {'forum': forum,
               'category': category,
               'thread': thread,
               'msgs': get_msgs(request),
               'post_set': thread.post_set.select_related('author').all(),
               'can_interact_with_users': can_interact_with_users(request),
               'can_interact_with_admins': can_interact_with_admins(request)}

    if can_interact_with_users(request):
        if request.method == "POST":
            form = PostForm(request, request.POST)
            if form.is_valid():
                instance = form.save(commit=False)
                instance.author = request.user
                instance.thread = thread
                instance.add_date = request.timestamp
                instance.save()
                return redirect('forum_thread', contest_id=request.contest.id,
                                category_id=category.id,
                                thread_id=thread.id)
        else:
            form = PostForm(request)
        context['form'] = form

    return TemplateResponse(request, 'forum/thread.html', context)
Exemple #6
0
def edit_post_view(request, category_id, thread_id, post_id):
    (category, thread, post) = get_forum_ctp(category_id, thread_id, post_id)
    is_admin = is_contest_admin(request)

    if not (post.author == request.user or is_admin):
        raise PermissionDenied

    if request.method == 'POST':
        form = PostForm(request, request.POST, instance=post)
        if form.is_valid():
            instance = form.save(commit=False)
            instance.approved = False
            instance.last_edit_date = request.timestamp
            instance.save()
            return redirect('forum_thread', contest_id=request.contest.id,
                            category_id=category.id,
                            thread_id=thread.id)
    else:
        form = PostForm(request, instance=post)

    return TemplateResponse(request, 'forum/edit_post.html', {
        'forum': request.contest.forum, 'category': category,
        'thread': thread, 'form': form, 'post': post,
        'msgs': get_msgs(request)
    })
Exemple #7
0
def thread_view(request, category_id, thread_id):
    category, thread = get_forum_ct(category_id, thread_id)
    forum = request.contest.forum

    context = {
        'forum': forum,
        'category': category,
        'thread': thread,
        'msgs': get_msgs(request),
        'post_set': thread.post_set.select_related('author').all(),
        'can_interact_with_users': can_interact_with_users(request),
        'can_interact_with_admins': can_interact_with_admins(request)
    }

    if can_interact_with_users(request):
        if request.method == "POST":
            form = PostForm(request, request.POST)
            if form.is_valid():
                instance = form.save(commit=False)
                instance.author = request.user
                instance.thread = thread
                instance.add_date = request.timestamp
                instance.save()
                return redirect('forum_thread',
                                contest_id=request.contest.id,
                                category_id=category.id,
                                thread_id=thread.id)
        else:
            form = PostForm(request)
        context['form'] = form

    return TemplateResponse(request, 'forum/thread.html', context)
Exemple #8
0
def edit_post_view(request, category_id, thread_id, post_id):
    (category, thread, post) = get_forum_ctp(category_id, thread_id, post_id)
    is_admin = is_contest_admin(request)

    if not (post.author == request.user or is_admin):
        raise PermissionDenied

    if request.method == 'POST':
        form = PostForm(request, request.POST, instance=post)
        if form.is_valid():
            instance = form.save(commit=False)
            instance.approved = False
            instance.last_edit_date = request.timestamp
            instance.save()
            return redirect('forum_thread',
                            contest_id=request.contest.id,
                            category_id=category.id,
                            thread_id=thread.id)
    else:
        form = PostForm(request, instance=post)

    return TemplateResponse(
        request, 'forum/edit_post.html', {
            'forum': request.contest.forum,
            'category': category,
            'thread': thread,
            'form': form,
            'post': post,
            'msgs': get_msgs(request)
        })
Exemple #9
0
def edit_post_view(request, contest_id, category_id, thread_id, post_id):
    (forum, cat, thread, post) = get_forum_objects(request, category_id,
                                                   thread_id, post_id)
    msgs = get_msgs(forum, request)
    is_admin = is_contest_admin(request)
    if post.author != request.user and not is_admin:
        raise PermissionDenied
    if request.method == 'POST':
        form = PostForm(request, request.POST, instance=post)
        if form.is_valid():
            instance = form.save(commit=False)
            instance.last_edit_date = request.timestamp
            instance.save()
            return redirect('forum_thread',
                            contest_id=contest_id,
                            category_id=cat.id,
                            thread_id=thread.id)
    else:
        form = PostForm(request, instance=post)

    return TemplateResponse(
        request, 'forum/edit_post.html', {
            'forum': forum,
            'category': cat,
            'thread': thread,
            'form': form,
            'post': post,
            'msgs': msgs
        })
Exemple #10
0
def thread_view(request, category_id, thread_id):
    category, thread = get_forum_ct(category_id, thread_id)
    forum, lock = request.contest.forum, forum_is_locked(request)
    msgs = get_msgs(request)
    post_set = thread.post_set.select_related('author').all()
    if (request.user.is_authenticated() and not lock) or \
       is_contest_admin(request):
        if request.method == "POST":
            form = PostForm(request, request.POST)
            if form.is_valid():
                instance = form.save(commit=False)
                instance.author = request.user
                instance.thread = thread
                instance.add_date = request.timestamp
                instance.save()
                return redirect('forum_thread', contest_id=request.contest.id,
                                category_id=category.id,
                                thread_id=thread.id)
        else:
            form = PostForm(request)

        return TemplateResponse(request, 'forum/thread.html',
            {'forum': forum, 'category': category, 'thread': thread,
             'form': form, 'msgs': msgs, 'is_locked': lock,
             'post_set': post_set})
    else:
        return TemplateResponse(request, 'forum/thread.html',
            {'forum': forum, 'category': category, 'thread': thread,
             'msgs': msgs, 'is_locked': lock, 'post_set': post_set})
Exemple #11
0
def edit_post_view(request, contest_id, category_id, thread_id, post_id):
    (forum, cat, thread, post) = get_forum_objects(request,
                                                   category_id, thread_id,
                                                   post_id)
    msgs = get_msgs(forum, request)
    is_admin = is_contest_admin(request)
    if post.author != request.user and not is_admin:
        raise PermissionDenied
    if request.method == 'POST':
        form = PostForm(request, request.POST, instance=post)
        if form.is_valid():
            instance = form.save(commit=False)
            instance.last_edit_date = request.timestamp
            instance.save()
            return redirect('forum_thread', contest_id=contest_id,
                            category_id=cat.id,
                            thread_id=thread.id)
    else:
        form = PostForm(request, instance=post)

    return TemplateResponse(request, 'forum/edit_post.html',
        {'forum': forum, 'category': cat, 'thread': thread, 'form': form,
         'post': post, 'msgs': msgs})
Exemple #12
0
def thread_view(request, contest_id, category_id, thread_id):
    (forum, category, thread, lock) = get_forum_objects(request,
                                                        category_id,
                                                        thread_id,
                                                        lock_required=True)
    msgs = get_msgs(forum, request)
    if (request.user.is_authenticated() and
       not request.contest.forum.is_locked(request.timestamp)) or \
       is_contest_admin(request):
        if request.method == "POST":
            form = PostForm(request, request.POST)
            if form.is_valid():
                instance = form.save(commit=False)
                instance.author = request.user
                instance.thread = thread
                instance.add_date = request.timestamp
                instance.save()
                return redirect('forum_thread',
                                contest_id=contest_id,
                                category_id=category.id,
                                thread_id=thread.id)
        else:
            form = PostForm(request)

        return TemplateResponse(
            request, 'forum/thread.html', {
                'forum': forum,
                'category': category,
                'thread': thread,
                'form': form,
                'msgs': msgs,
                'is_locked': lock
            })
    else:
        return TemplateResponse(
            request, 'forum/thread.html', {
                'forum': forum,
                'category': category,
                'thread': thread,
                'msgs': msgs,
                'is_locked': lock
            })