Source code for oioioi.scoresreveal.views
from django.contrib import messages
from django.http import Http404
from django.shortcuts import redirect
from django.utils.translation import gettext_lazy as _
from django.views.decorators.http import require_POST
from oioioi.base.permissions import enforce_condition
from oioioi.contests.utils import (
can_enter_contest,
contest_exists,
get_submission_or_error,
)
from oioioi.scoresreveal.utils import has_scores_reveal
@enforce_condition(contest_exists & can_enter_contest)
@require_POST
[docs]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_instance):
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,
)