示例#1
0
def contest_dashboard_view(request, round_pk=None):
    messages = messages_template_context(request, visible_messages(request))[
               :NUMBER_OF_RECENT_ACTIONS]

    queryset = Submission.objects \
        .filter(problem_instance__contest=request.contest) \
        .order_by('-date') \
        .select_related('user', 'problem_instance',
                        'problem_instance__contest',
                        'problem_instance__round',
                        'problem_instance__problem')

    ss = [submission_template_context(request, s) for s in
          queryset[:NUMBER_OF_RECENT_ACTIONS]]

    rtimes = list(rounds_times(request, request.contest).items())
    rtimes.sort(key=lambda r_rt: r_rt[0].start_date)

    if round_pk is None and len(rtimes) > 0:
        # First active round, or last one if there are no active ones
        round_pk = next(
            ((r, rt) for r, rt in rtimes if rt.is_active(request.timestamp)),
            rtimes[-1])[0].pk

    context = {
        'round_times': rtimes,
        'selected_round': None,
        'records': messages,
        'submissions': ss
    }

    if round_pk is not None:
        context.update(get_round_context(request, round_pk))

    return TemplateResponse(request, 'simpleui/contest/contest.html', context)
示例#2
0
def messages_fragment(request):
    messages = messages_template_context(request, visible_messages(request))
    messages = messages[:getattr(settings, 'NUM_DASHBOARD_MESSAGES', 8)]
    if not messages:
        return None
    context = {
        'records': messages,
    }
    return render_to_string('dashboard/messages.html',
        context_instance=RequestContext(request, context))
示例#3
0
文件: views.py 项目: marmistrz/oioioi
def messages_fragment(request):
    messages = messages_template_context(request, visible_messages(request))
    messages = messages[:getattr(settings, 'NUM_DASHBOARD_MESSAGES', 8)]
    if not messages:
        return None
    context = {
        'records': messages,
    }
    return render_to_string('dashboard/messages.html',
                            context_instance=RequestContext(request, context))
示例#4
0
def contest_dashboard_view(request, round_pk=None):
    if request.user.is_superuser:
        return redirect('default_contest_view', contest_id=request.contest.id)

    messages = messages_template_context(
        request, visible_messages(request))[:NUMBER_OF_RECENT_ACTIONS]

    queryset = (Submission.objects.filter(
        problem_instance__contest=request.contest).order_by(
            '-date').select_related(
                'user',
                'problem_instance',
                'problem_instance__contest',
                'problem_instance__round',
                'problem_instance__problem',
            ))

    ss = [
        submission_template_context(request, s)
        for s in queryset[:NUMBER_OF_RECENT_ACTIONS]
    ]

    rtimes = list(rounds_times(request, request.contest).items())
    rtimes.sort(key=lambda r_rt: r_rt[0].start_date)

    if round_pk is None and len(rtimes) > 0:
        # First active round, or last one if there are no active ones
        round_pk = next(
            ((r, rt) for r, rt in rtimes if rt.is_active(request.timestamp)),
            rtimes[-1])[0].pk

    context = {
        'round_times':
        rtimes,
        'selected_round':
        None,
        'records':
        messages,
        'submissions':
        ss,
        'contest_dashboard_url_name':
        'simpleui_contest_dashboard',
        'public_contest':
        isinstance(
            request.contest.controller.registration_controller(),
            PublicContestRegistrationController,
        ),
    }

    if round_pk is not None:
        context.update(get_round_context(request, round_pk))

    return TemplateResponse(request, 'simpleui/contest/contest.html', context)
示例#5
0
def messages_fragment(request):
    messages = messages_template_context(request, visible_messages(request))
    dashboard_msg_cnt_limit = getattr(settings, 'NUM_DASHBOARD_MESSAGES', 8)
    show_more_button = len(messages) > dashboard_msg_cnt_limit
    messages = messages[:dashboard_msg_cnt_limit]
    if not messages:
        return None
    context = {
        'records': messages,
        'show_more_button': show_more_button,
    }
    return render_to_string('dashboard/messages.html',
                            context=context, request=request)
示例#6
0
    def get_contest_participant_info_list(self, request, user):
        messages = messages_template_context(request, visible_messages(request,
                author=user))

        prev = super(QuestionsContestControllerMixin, self) \
                .get_contest_participant_info_list(request, user)
        if messages:
            prev.append((30, render_to_string('questions/user_list_table.html',
                    {'contest': request.contest,
                     'hide_author': True,
                     'records': messages,
                     'user': request.user})))
        return prev
示例#7
0
def messages_fragment(request):
    messages = messages_template_context(request, visible_messages(request))
    dashboard_msg_cnt_limit = getattr(settings, 'NUM_DASHBOARD_MESSAGES', 8)
    show_more_button = len(messages) > dashboard_msg_cnt_limit
    messages = messages[:dashboard_msg_cnt_limit]
    if not messages:
        return None
    context = {
        'records': messages,
        'show_more_button': show_more_button,
    }
    return render_to_string('dashboard/messages.html',
                            context=context, request=request)
示例#8
0
    def get_contest_participant_info_list(self, request, user):
        messages = messages_template_context(
            request, visible_messages(request, author=user))

        prev = super(QuestionsContestControllerMixin, self) \
                .get_contest_participant_info_list(request, user)
        if messages:
            prev.append((30,
                         render_to_string(
                             'questions/user_list_table.html', {
                                 'contest': request.contest,
                                 'hide_author': True,
                                 'records': messages,
                                 'user': request.user
                             })))
        return prev
示例#9
0
文件: views.py 项目: mahrud/oioioi
def contest_dashboard_view(request, contest_id):
    top_links = grouper(3, top_links_registry.template_context(request))
    submissions = Submission.objects \
            .filter(problem_instance__contest=request.contest) \
            .order_by('-date').select_related()
    controller = request.contest.controller
    submissions = controller.filter_visible_submissions(request, submissions)
    submissions = submissions[:getattr(settings, 'NUM_DASHBOARD_SUBMISSIONS', 8)]
    submissions = [submission_template_context(request, s) for s in submissions]
    show_scores = bool(s for s in submissions if s.score is not None)
    messages = messages_template_context(request, visible_messages(request))
    context = {
            'top_links': top_links,
            'submissions': submissions,
            'records': messages,
            'show_scores': show_scores
        }
    return TemplateResponse(request, 'dashboard/dashboard.html', context)
示例#10
0
文件: views.py 项目: matrach/oioioi
def contest_dashboard_view(request, contest_id):
    top_links = grouper(3, top_links_registry.template_context(request))
    submissions = Submission.objects \
            .filter(problem_instance__contest=request.contest) \
            .order_by('-date').select_related()
    cc = request.contest.controller
    submissions = cc.filter_my_visible_submissions(request, submissions)
    submissions = \
            submissions[:getattr(settings, 'NUM_DASHBOARD_SUBMISSIONS', 8)]
    submissions = [
        submission_template_context(request, s) for s in submissions
    ]
    show_scores = bool(s for s in submissions if s.score is not None)
    messages = messages_template_context(request, visible_messages(request))
    messages = messages[:getattr(settings, 'NUM_DASHBOARD_MESSAGES', 8)]
    context = {
        'top_links': top_links,
        'submissions': submissions,
        'records': messages,
        'show_scores': show_scores
    }
    return TemplateResponse(request, 'dashboard/dashboard.html', context)
示例#11
0
def contest_dashboard_view(request, round_pk=None):
    messages = messages_template_context(
        request, visible_messages(request))[:NUMBER_OF_RECENT_ACTIONS]

    queryset = Submission.objects \
        .filter(problem_instance__contest=request.contest) \
        .order_by('-date') \
        .select_related('user', 'problem_instance',
                        'problem_instance__contest',
                        'problem_instance__round',
                        'problem_instance__problem')

    ss = [
        submission_template_context(request, s)
        for s in queryset[:NUMBER_OF_RECENT_ACTIONS]
    ]

    rtimes = rounds_times(request).items()
    rtimes.sort(key=lambda (r, rt): r.start_date)

    if round_pk is None and len(rtimes) > 0:
        # First active round, or last one if there are no active ones
        round_pk = next(
            ((r, rt) for r, rt in rtimes if rt.is_active(request.timestamp)),
            rtimes[-1])[0].pk

    context = {
        'round_times': rtimes,
        'selected_round': None,
        'records': messages,
        'submissions': ss
    }

    if round_pk is not None:
        context.update(get_round_context(request, round_pk))

    return TemplateResponse(request, 'simpleui/contest/contest.html', context)