Source code for oioioi.liveranking.views

from django.core.exceptions import SuspiciousOperation
from django.shortcuts import get_object_or_404
from django.template.response import TemplateResponse

from oioioi.base.permissions import enforce_condition
from oioioi.contests.models import Contest, Round
from oioioi.contests.utils import contest_exists
from oioioi.livedata.utils import can_see_livedata


[docs]def _ranking_settings(contest, round_id): round = get_object_or_404(Round, id=round_id) if round.contest != contest: raise SuspiciousOperation return { 'contest': contest, 'round': round, 'bomb_penalty': 20 * 60, 'freeze_time': 60 * 60 * 4, 'round_length': 60 * 60 * 5, 'max_refresh_rate': 1000, }
[docs]DEFAULT_ROUND = 126
@enforce_condition(contest_exists & can_see_livedata)
[docs]def liveranking_auto_view(request, round_id=None): if not round_id: round_id = DEFAULT_ROUND ranking_variables = _ranking_settings(request.contest, round_id) return TemplateResponse(request, 'liveranking/auto.html', ranking_variables)
@enforce_condition(contest_exists & can_see_livedata)
[docs]def liveranking_simple_view(request, round_id=None): if not round_id: round_id = DEFAULT_ROUND ranking_variables = _ranking_settings(request.contest, round_id) return TemplateResponse(request, 'liveranking/simple.html', ranking_variables)
@enforce_condition(contest_exists & can_see_livedata)
[docs]def liveranking_autoDonuts_view(request, round_id=None): if not round_id: round_id = DEFAULT_ROUND ranking_variables = _ranking_settings(request.contest, round_id) return TemplateResponse(request, 'liveranking/autoDonuts.html', ranking_variables)
@enforce_condition(contest_exists & can_see_livedata)
[docs]def liveranking_simpleDonuts_view(request, round_id=None): if not round_id: round_id = DEFAULT_ROUND ranking_variables = _ranking_settings(request.contest, round_id) return TemplateResponse(request, 'liveranking/simpleDonuts.html', ranking_variables)