Пример #1
0
def view_clarification(request):
    refresh_contest_session_contestant(request)  # refersh the contest session
    current_contest_id = request.session.get('active_contest_contestant')
    try:
        current_contest = Contest.objects.get(pk=current_contest_id,
                                              active_time__lte=timezone.now(),
                                              enable=True)
    except Contest.DoesNotExist:
        current_contest = None

    all_clarification = Clarification.objects.filter(contest=current_contest, user=request.user, status=True).order_by('send_time').reverse() |\
        Clarification.objects.filter(
            contest=current_contest, is_public=True, status=True).order_by('send_time').reverse()

    for cla in all_clarification:
        if len(cla.question) > 60:
            cla.short_question = cla.question[:60] + ' ...'
        else:
            cla.short_question = cla.question

        if len(cla.answer) > 60:
            cla.short_answer = cla.answer[:60] + ' ...'
        else:
            cla.short_answer = cla.answer
    all_clarification, paginator = pagination(request, all_clarification)
    context = {
        'all_clarification': all_clarification,
        'paginator': paginator,
        'clar': 'hover'
    }
    return render(request, 'view_clarification.html', context)
Пример #2
0
def request_clarification(request):
    refresh_contest_session_contestant(request)  # refersh the contest session
    current_contest_id = request.session.get('active_contest_contestant')
    problem_list = None
    try:
        current_contest = Contest.objects.get(pk=current_contest_id,
                                              active_time__lte=timezone.now(),
                                              enable=True)
    except Contest.DoesNotExist:
        current_contest = None
    if current_contest:
        problem_list = current_contest.problem.all().order_by('title')
        if request.method == "POST":
            form = ClarificationRequest(request.POST)
            form.fields['problem'].queryset = problem_list
            if form.is_valid():
                post = form.save(commit=False)
                post.send_time = timezone.now()
                post.user = request.user
                post.contest = current_contest
                post.save()

                return redirect('request_clarification')
        else:
            form = ClarificationRequest()
            form.fields['problem'].queryset = problem_list
    else:
        form = None

    all_clarification = Clarification.objects.filter(
        contest=current_contest,
        user=request.user).order_by('send_time').reverse()
    for cla in all_clarification:
        if len(cla.question) > 100:
            cla.short_question = cla.question[:100] + ' ...'
        else:
            cla.short_question = cla.question
    all_clarification, paginator = pagination(request, all_clarification)
    context = {
        'form': form,
        'all_clarification': all_clarification,
        'paginator': paginator,
        'clar': 'hover'
    }
    return render(request, 'clarification_request.html', context)