def reveal_score(self, request, submission):
        assert has_scores_reveal(submission.problem)
        assert self.can_reveal(request, submission)[0]

        _obj, created = ScoreReveal.objects.get_or_create(
            submission=submission)
        return created
    def render_submission_footer(self, request, submission):
        super_footer = super(ScoresRevealContestControllerMixin, self). \
                render_submission_footer(request, submission)

        if not has_scores_reveal(submission.problem) or \
                submission.kind != 'NORMAL' or submission.user is None:
            return super_footer

        scores_reveals = self.get_revealed_submissions(
            submission.user, submission.problem_instance).count()
        scores_reveals_limit = self.get_scores_reveals_limit(
            submission.problem_instance)
        scores_reveals_disable_time = self.get_scores_reveals_disable_time(
            submission.problem_instance)
        can_reveal, reason = self.can_reveal(request, submission)

        return render_to_string(
            'scoresreveal/submission_footer.html',
            context_instance=RequestContext(
                request, {
                    'submission':
                    submission_template_context(request,
                                                submission.programsubmission),
                    'scores_reveals':
                    scores_reveals,
                    'scores_reveals_limit':
                    scores_reveals_limit,
                    'scores_reveals_disable_time':
                    scores_reveals_disable_time,
                    'can_reveal':
                    can_reveal,
                    'can_reveal_reason':
                    reason
                })) + super_footer
Beispiel #3
0
    def render_submission_footer(self, request, submission):
        super_footer = super(ScoresRevealContestControllerMixin, self). \
                render_submission_footer(request, submission)

        if not has_scores_reveal(submission.problem) or \
                submission.kind != 'NORMAL' or submission.user is None:
            return super_footer

        scores_reveals = self.get_revealed_submissions(submission.user,
            submission.problem_instance).count()
        scores_reveals_limit = self.get_scores_reveals_limit(
            submission.problem_instance)
        scores_reveals_disable_time = self.get_scores_reveals_disable_time(
            submission.problem_instance)
        can_reveal, reason = self.can_reveal(request, submission)

        return render_to_string('scoresreveal/submission_footer.html',
            context_instance=RequestContext(request,
                {'submission': submission_template_context(request,
                 submission.programsubmission),
                 'scores_reveals': scores_reveals,
                 'scores_reveals_limit': scores_reveals_limit,
                 'scores_reveals_disable_time': scores_reveals_disable_time,
                 'can_reveal': can_reveal,
                 'can_reveal_reason': reason})) + super_footer
Beispiel #4
0
def score_reveal_view(request, contest_id, submission_id):
    submission = get_submission_or_404(request, contest_id, submission_id)
    controller = request.contest.controller
    if not has_scores_reveal(submission.problem):
        raise Http404
    decision, reason = controller.can_reveal(request, submission)
    if not decision:
        messages.error(request, reason)
    else:
        controller.reveal_score(request, submission)
        messages.success(request, _("Submission score has been revealed."))

    return redirect('submission',
        contest_id=submission.problem_instance.contest_id,
        submission_id=submission.id)
Beispiel #5
0
def score_reveal_view(request, submission_id):
    submission = get_submission_or_error(request, submission_id)
    controller = request.contest.controller
    if not has_scores_reveal(submission.problem):
        raise Http404
    decision, reason = controller.can_reveal(request, submission)
    if not decision:
        messages.error(request, reason)
    else:
        controller.reveal_score(request, submission)
        messages.success(request, _("Submission score has been revealed."))

    return redirect('submission',
        contest_id=submission.problem_instance.contest_id,
        submission_id=submission.id)
Beispiel #6
0
    def reveal_score(self, request, submission):
        assert has_scores_reveal(submission.problem_instance)
        assert self.can_reveal(request, submission)[0]

        ScoreReveal.objects.get_or_create(submission=submission)
Beispiel #7
0
    def reveal_score(self, request, submission):
        assert has_scores_reveal(submission.problem)
        assert self.can_reveal(request, submission)[0]

        ScoreReveal.objects.get_or_create(submission=submission)