88 lines
4.7 KiB
HTML
88 lines
4.7 KiB
HTML
{% extends "tabs-base.html" %}
|
|
|
|
{% block tabs %}
|
|
{{ make_tab('detail', 'fa-info-circle', url('contest_view', contest.key), _('Info')) }}
|
|
{% if contest.ended or contest.is_editable_by(request.user) %}
|
|
{{ make_tab('stats', 'fa-pie-chart', url('contest_stats', contest.key), _('Statistics')) }}
|
|
{% endif %}
|
|
|
|
{% if contest.start_time <= now or perms.judge.see_private_contest %}
|
|
{% if contest.show_scoreboard or contest.can_see_scoreboard(request.user) %}
|
|
{{ make_tab('ranking', 'fa-bar-chart', url('contest_ranking', contest.key), _('Rankings')) }}
|
|
{% else %}
|
|
{{ make_tab('ranking', 'fa-bar-chart', None, _('Hidden Rankings')) }}
|
|
{% endif %}
|
|
{% if contest.show_scoreboard and request.user.is_authenticated %}
|
|
{{ make_tab('participation', 'fa-users', url('contest_participation_own', contest.key), _('Participation')) }}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% if contest.is_editable_by(request.user) %}
|
|
{% if perms.judge.moss_contest and has_moss_api_key %}
|
|
{{ make_tab('moss', 'fa-gavel', url('contest_moss', contest.key), _('MOSS')) }}
|
|
{% endif %}
|
|
{{ make_tab('edit', 'fa-edit', url('admin:judge_contest_change', contest.id), _('Edit')) }}
|
|
{% endif %}
|
|
{% if perms.judge.clone_contest %}
|
|
{{ make_tab('clone', 'fa-copy', url('contest_clone', contest.key), _('Clone')) }}
|
|
{% endif %}
|
|
|
|
{% if request.user.is_authenticated %}
|
|
{% if contest.can_join or participating or is_organizer %}
|
|
{% if contest.ended %}
|
|
{% if in_contest %}
|
|
{# They're in the contest because they're participating virtually #}
|
|
<form action="{{ url('contest_leave', contest.key) }}" method="post"
|
|
class="contest-join-pseudotab unselectable button full">
|
|
{% csrf_token %}
|
|
<input type="submit" class="leaving-forever" value="{{ _('Leave contest') }}">
|
|
</form>
|
|
{% else %}
|
|
{# They're in the contest because they're participating virtually #}
|
|
<form action="{{ url('contest_join', contest.key) }}" method="post"
|
|
class="contest-join-pseudotab unselectable button full">
|
|
{% csrf_token %}
|
|
<input type="submit" value="{{ _('Virtual join') }}">
|
|
</form>
|
|
{% endif %}
|
|
{% else %}
|
|
{% if in_contest %}
|
|
{# Allow people with ended participations to continue spectating #}
|
|
<form action="{{ url('contest_leave', contest.key) }}" method="post"
|
|
class="contest-join-pseudotab unselectable button full">
|
|
{% csrf_token %}
|
|
<input type="submit" value="
|
|
{%- if participating and participation.ended or request.profile in contest.organizers.all() %}
|
|
{{- _('Stop spectating') -}}
|
|
{% else %}
|
|
{{- _('Leave contest') -}}
|
|
{% endif %}">
|
|
</form>
|
|
{% elif participating and participation.ended or is_organizer %}
|
|
<form action="{{ url('contest_join', contest.key) }}" method="post"
|
|
class="contest-join-pseudotab unselectable button full">
|
|
{% csrf_token %}
|
|
<input type="submit" value="{{ _('Spectate contest') }}">
|
|
</form>
|
|
{% elif participating %}
|
|
<form action="{{ url('contest_join', contest.key) }}" method="post"
|
|
class="contest-join-pseudotab unselectable button full">
|
|
{% csrf_token %}
|
|
<input type="submit" value="{{ _('Join contest') }}">
|
|
</form>
|
|
{% else %}
|
|
<form action="{{ url('contest_join', contest.key) }}" method="post"
|
|
class="contest-join-pseudotab unselectable button full">
|
|
{% csrf_token %}
|
|
<input type="submit" class="first-join" value="{{ _('Join contest') }}">
|
|
</form>
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% elif contest.can_join %}
|
|
<form action="{{ url('auth_login') }}" method="get"
|
|
class="contest-join-pseudotab unselectable button full">
|
|
<input type="hidden" name="next" value="{{ LOGIN_RETURN_PATH|urlencode }}">
|
|
<input type="submit" value="{{ _('Login to participate') }}">
|
|
</form>
|
|
{% endif %}
|
|
{% endblock %}
|