Select Git revision
org_contest.html

Martin Mareš authored
org_contest.html 6.03 KiB
{% extends "base.html" %}
{% set round = contest.round %}
{% set state = contest.state %}
{% set ct_state = contest.ct_state() %}
{% set can_manage = rights.have_right(Right.manage_contest) %}
{% set can_upload = rights.can_upload_feedback() %}
{% set can_edit_points = rights.can_edit_points() %}
{% set can_create_solutions = rights.can_upload_feedback() or rights.can_upload_solutions() %}
{% set can_view_statement = rights.can_view_statement() %}
{% block title %}
{{ round.round_code() }}: {% if site %}soutěžní místo {{ site.name }}{% else %}{{ contest.place.name }}{% endif %}
{% endblock %}
{% block breadcrumbs %}
{{ ctx.breadcrumbs() }}
{% endblock %}
{% block body %}
<table class=data>
<tr><td>Název<td>{{ round.name }}
<tr><td>Oblast<td><a href='{{ url_for('org_place', id=contest.place.place_id) }}'>{{ contest.place.name }}</a>
{% if site %}
<tr><td>Soutěžní místo<td><a href='{{ url_for('org_place', id=site.place_id) }}'>{{ site.name }}</a>
{% endif %}
<tr><td>Stav<td><span class='rstate-{{state.name}}'>{{ state.friendly_name() }}</span>
{% if round.state != RoundState.delegate %}
(určeno nastavením kola)
{% endif %}
<tr><td>Stav pro účastníky<td><span class='rstate-{{ct_state.name}}'>{{ ct_state.friendly_name() }}</span>
<tr><td>Vaše role<td>{% if g.user.is_admin %}správce{% elif roles %}{{ roles|join(", ") }}{% else %}–{% endif %}
{% if group_contests|length > 1 %}
<tr><td>Soutěže ve skupině kol:<td>
{% for c in group_contests %}
{% if c == contest %}<i>{% else %}<a href="{{ url_for('org_contest', ct_id=c.contest_id) }}">{% endif %}
{{ c.round.round_code() }}: {% if site %}soutěžní místo {{ site.name }}{% else %}{{ contest.place.name }}{% endif %}
{% if c == contest %} (tato soutěž)</i>{% else %}</a>{% endif %}<br>
{% endfor %}
{% endif %}
<tr><td>Zadání<td>
{% if round.tasks_file %}
{% if can_view_statement %}
<a href='{{ ctx.url_for('org_task_statement', ct_id=None) }}'>stáhnout</a>
{% else %}
není dostupné
{% endif %}
{% else %}
–
{% endif %}
</table>
<div class="btn-group">
<a class="btn btn-primary" href='{{ ctx.url_for('org_generic_list') }}'>Seznam účastníků</a>
{% if state != RoundState.preparing %}
<a class="btn btn-primary" href='{{ ctx.url_for('org_contest_solutions') }}'>Odevzdaná řešení</a>
{% endif %}
{% if can_manage and site %}
<a class="btn btn-default" href="{{ ctx.url_for('org_contest_add_user') }}">Přidat účastníka</a>
{% endif %}
{% if not site %}
{% if state in [RoundState.grading, RoundState.closed] %}
<a class="btn btn-primary" href='{{ ctx.url_for('org_score') }}'>Výsledky</a>
{% endif %}
<a class="btn btn-default" href='{{ ctx.url_for('org_contest_protocols') }}'>Protokoly</a>
{% if state == RoundState.preparing and round.seq > 1 %}
<a class="btn btn-primary" href='{{ ctx.url_for('org_contest_advance') }}'>Postup z minulého kola</a>
{% endif %}
{% if can_manage %}
<a class="btn btn-default" href='{{ ctx.url_for('org_generic_import') }}'>Importovat data</a>
{% endif %}
{% if can_manage and not site %}
<a class="btn btn-default" href='{{ ctx.url_for('org_contest_edit') }}'>Nastavení</a>
{% endif %}
{% if g.user.is_admin %}
<a class="btn btn-default" href="{{ log_url('contest', ctx.ct_id) }}">Historie</a>
{% endif %}
{% endif %}
</div>
{% if not site %}
<h3>Soutěžní místa</h3>
{% if places_counts %}
<table class=data>
<thead>
<tr><th>Místo<th>Počet účastníků<th>Akce
</thead>
{% for (place, count) in places_counts %}
<tr>
<td><a href="{{ ctx.url_for('org_contest', site_id=place.place_id) }}">{{ place.name }}</a>
<td>{{ count }}
<td><div class="btn-group">
<a class="btn btn-xs btn-primary" href="{{ ctx.url_for('org_contest', site_id=place.place_id) }}">Detail</a>
{% if can_manage %}
<a class="btn btn-xs btn-default" href="{{ ctx.url_for('org_contest_add_user', site_id=place.place_id) }}">Přidat účastníka</a>
</div>
{% endif %}
</tr>
{% endfor %}
<tfoot>
<tr>
<th>Celkem
<th>{{ places_counts|sum(attribute=1) }}
<th>
</tr>
</tfoot>
</table>
{% else %}
<p><i>Žádní účastníci a žádná soutěžní místa.</i></p>
{% endif %}
{% endif %}
<div class="btn-group">
{% if can_manage and not site %}
<a class="btn btn-default" href='{{ ctx.url_for('org_contest_add_user') }}'>Přidat účastníka</a>
{% endif %}
</div>
<h3>Úlohy</h3>
{% if tasks %}
<table class=data>
<thead>
<tr>
<th>Kód
<th>Název
<th>Odevzdaná řešení
<th>Maximum bodů
<th>Jednotlivé akce
<th>Dávkové operace
</tr>
</thead>
{% for task in tasks %}
<tr>
<td>{{ task.code }}
<td>{{ task.name }}
<td>{{ task.sol_count }}
<td>{{ task.max_points|decimal|none_value('–') }}
<td><div class="btn-group">
<a class="btn btn-xs btn-primary" href="{{ ctx.url_for('org_contest_task', task_id=task.task_id) }}">Odevzdaná řešení</a>
{% if not site and can_edit_points %}
<a class="btn btn-xs btn-default" href="{{ ctx.url_for('org_contest_task_points', task_id=task.task_id) }}">Zadat body</a>
{% endif %}
{% if can_create_solutions %}
<a class="btn btn-xs btn-default" href="{{ ctx.url_for('org_contest_task_create', task_id=task.task_id) }}">Založit řešení</a>
{% endif %}
</div>
<td><div class="btn-group">
<a class="btn btn-xs btn-primary" href="{{ ctx.url_for('org_generic_batch_download', task_id=task.task_id) }}">Stáhnout ZIP</a>
{% if can_upload %}
<a class='btn btn-xs btn-default' href="{{ ctx.url_for('org_generic_batch_upload', task_id=task.task_id) }}">Nahrát ZIP</a>
{% endif %}
{% if not site and can_edit_points %}
<a class="btn btn-xs btn-default" href="{{ ctx.url_for('org_generic_batch_points', task_id=task.task_id) }}">Nahrát body</a>
{% endif %}
</div>
</tr>
{% endfor %}
</table>
{% else %}
<p><i>Zatím nebyly přidány žádné úlohy.</i></p>
{% endif %}
<!--
Práva k {% if site %}soutěžními místu{% else %}soutěži{% endif %}:
{% if g.user.is_admin %}
admin
{% elif rights_list %}
{% for r in rights_list %}
{{ r.name }}
{% endfor %}
{% else %}
žádná
{% endif %}
-->
{% endblock %}