2022-11-27 07:03:38 +00:00
|
|
|
{% extends "two-column-content.html" %}
|
|
|
|
{% set page_type = 'detail' %}
|
2022-11-28 00:13:40 +00:00
|
|
|
|
|
|
|
{% block middle_title %}
|
|
|
|
<h2>{{contest.name}}</h2>
|
|
|
|
{% endblock %}
|
|
|
|
|
2022-11-27 07:03:38 +00:00
|
|
|
{% block left_sidebar %}
|
2020-01-21 06:35:58 +00:00
|
|
|
{% set title = contest.name %}
|
|
|
|
{% include "contest/contest-tabs.html" %}
|
|
|
|
{% endblock %}
|
|
|
|
|
2022-11-27 07:03:38 +00:00
|
|
|
{% block two_col_js %}
|
2020-01-21 06:35:58 +00:00
|
|
|
{% include "contest/media-js.html" %}
|
|
|
|
{% include "comments/media-js.html" %}
|
2022-11-17 09:09:28 +00:00
|
|
|
{% include "actionbar/media-js.html" %}
|
2020-01-21 06:35:58 +00:00
|
|
|
{% endblock %}
|
|
|
|
|
2022-11-27 07:03:38 +00:00
|
|
|
{% block two_col_media %}
|
2020-01-21 06:35:58 +00:00
|
|
|
{% include "comments/media-css.html" %}
|
2022-11-17 00:48:32 +00:00
|
|
|
{% include "actionbar/media-css.html" %}
|
2020-01-21 06:35:58 +00:00
|
|
|
{% endblock %}
|
|
|
|
|
2022-11-27 07:03:38 +00:00
|
|
|
{% block middle_content %}
|
|
|
|
{% include "contest/contest-datetime.html" %}
|
2020-01-21 06:35:58 +00:00
|
|
|
|
2022-11-27 07:23:04 +00:00
|
|
|
{% if request.user.is_authenticated %}
|
|
|
|
{% if contest.can_join or is_editor or is_tester %}
|
|
|
|
{% set in_contest = contest.is_in_contest(request.user) %}
|
|
|
|
{% if contest.ended %}
|
|
|
|
{# Allow users to leave the virtual contest #}
|
|
|
|
{% if in_contest %}
|
|
|
|
<form action="{{ url('contest_leave', contest.key) }}" method="post"
|
|
|
|
class="contest-join-pseudotab btn-midnightblue">
|
|
|
|
{% csrf_token %}
|
|
|
|
<input type="submit" class="leaving-forever" value="{{ _('Leave contest') }}">
|
|
|
|
</form>
|
|
|
|
{% else %}
|
|
|
|
{# Allow users to virtual join #}
|
|
|
|
<form action="{{ url('contest_join', contest.key) }}" method="post"
|
|
|
|
class="contest-join-pseudotab btn-midnightblue">
|
|
|
|
{% csrf_token %}
|
|
|
|
<input type="submit" value="{{ _('Virtual join') }}">
|
|
|
|
</form>
|
|
|
|
{% endif %}
|
|
|
|
{% else %}
|
|
|
|
{# Allow users to leave the contest #}
|
|
|
|
{% if in_contest %}
|
|
|
|
<form action="{{ url('contest_leave', contest.key) }}" method="post"
|
|
|
|
class="contest-join-pseudotab">
|
|
|
|
{% csrf_token %}
|
|
|
|
<input type="submit" class="btn-midnightblue" value="
|
|
|
|
{%- if request.participation.spectate %}
|
|
|
|
{{- _('Stop spectating') -}}
|
|
|
|
{% else %}
|
|
|
|
{{- _('Leave contest') -}}
|
|
|
|
{% endif %}">
|
|
|
|
</form>
|
|
|
|
{% elif is_editor or is_tester or live_participation.ended %}
|
|
|
|
<form action="{{ url('contest_join', contest.key) }}" method="post" class="contest-join-pseudotab">
|
|
|
|
{% csrf_token %}
|
|
|
|
<input type="submit" class="btn-midnightblue" value="{{ _('Spectate contest') }}">
|
|
|
|
</form>
|
|
|
|
{% else %}
|
|
|
|
<form action="{{ url('contest_join', contest.key) }}" method="post" class="contest-join-pseudotab">
|
|
|
|
{% csrf_token %}
|
|
|
|
<input type="submit" class="btn-midnightblue {% if not has_joined %}first-join{% endif %}"
|
|
|
|
value="{{ _('Join contest') }}">
|
|
|
|
</form>
|
|
|
|
{% endif %}
|
|
|
|
{% endif %}
|
|
|
|
{% endif %}
|
|
|
|
{% elif contest.can_join %}
|
|
|
|
<form action="{{ url('auth_login') }}" method="get"
|
|
|
|
class="contest-join-pseudotab unselectable">
|
|
|
|
<input type="hidden" name="next" value="{{ LOGIN_RETURN_PATH|urlencode }}">
|
|
|
|
<input type="submit" class="btn-midnightblue" value="{{ _('Login to participate') }}">
|
|
|
|
</form>
|
|
|
|
{% endif %}
|
|
|
|
|
2020-01-21 06:35:58 +00:00
|
|
|
<div class="content-description">
|
|
|
|
{% cache 3600 'contest_html' contest.id MATH_ENGINE %}
|
2022-10-25 04:59:04 +00:00
|
|
|
{{ contest.description|markdown|reference|str|safe }}
|
2020-01-21 06:35:58 +00:00
|
|
|
{% endcache %}
|
|
|
|
</div>
|
|
|
|
|
2021-05-24 20:00:36 +00:00
|
|
|
{% if contest.ended or request.user.is_superuser or is_editor or is_tester %}
|
2020-01-21 06:35:58 +00:00
|
|
|
<hr>
|
|
|
|
<div class="contest-problems">
|
|
|
|
<h2 style="margin-bottom: 0.2em"><i class="fa fa-fw fa-question-circle"></i>{{ _('Problems') }} </h2>
|
|
|
|
<table id="contest-problems" class="table">
|
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
<th>{{ _('Problem') }}</th>
|
|
|
|
<th>{{ _('Points') }}</th>
|
|
|
|
<th>{{ _('AC Rate') }}</th>
|
|
|
|
<th>{{ _('Users') }}</th>
|
|
|
|
<th></th>
|
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
{% for problem in contest_problems %}
|
|
|
|
<tr>
|
|
|
|
<td>
|
|
|
|
{% if problem.is_public %}
|
|
|
|
<a href="{{ url('problem_detail', problem.code) }}">{{ problem.i18n_name }}</a>
|
|
|
|
{% else %}
|
|
|
|
{{ problem.i18n_name }}
|
|
|
|
{% endif %}
|
|
|
|
</td>
|
|
|
|
<td>{{ problem.points|floatformat }}{% if problem.partial %}p{% endif %}</td>
|
|
|
|
<td>{{ problem.ac_rate|floatformat(1) }}%</td>
|
|
|
|
<td>
|
|
|
|
{% if problem.is_public %}
|
|
|
|
<a href="{{ url('ranked_submissions', problem.code) }}">{{ problem.user_count }}</a>
|
|
|
|
{% else %}
|
|
|
|
{{ problem.user_count }}
|
|
|
|
{% endif %}
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
{% if problem.is_public and problem.has_public_editorial %}
|
|
|
|
<a href="{{ url('problem_editorial', problem.code) }}">{{ _('Editorial') }}</a>
|
|
|
|
{% endif %}
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
{% endfor %}
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
</div>
|
2022-11-17 00:48:32 +00:00
|
|
|
<hr>
|
2020-01-21 06:35:58 +00:00
|
|
|
{% endif %}
|
2022-11-17 00:48:32 +00:00
|
|
|
{% include "actionbar/list.html" %}
|
|
|
|
<br>
|
2020-01-21 06:35:58 +00:00
|
|
|
{% include "comments/list.html" %}
|
2022-11-27 07:03:38 +00:00
|
|
|
{% endblock %}
|