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) })
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})
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})
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})
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)
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) })
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)
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) })
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 })
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})
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 })