Skip to content
Snippets Groups Projects

Reforma orgovského rozhraní ke kolům a soutěžím

2 files
+ 147
66
Compare changes
  • Side-by-side
  • Inline

Files

+ 86
47
{% extends "base.html" %}
{% import "bootstrap/wtf.html" as wtf %}
{% set in_hier = ctx.hier_id != None %}
{% set can_manage_round = rights.have_right(Right.manage_round) and not in_hier %}
{% set can_manage_contest = rights.have_right(Right.manage_contest) %}
{% set can_view_contestants = rights.have_right(Right.view_contestants) %}
{% set can_handle_submits = rights.have_right(Right.view_submits) %}
{% set can_upload = rights.can_upload_feedback() %}
{% set can_view_statement = rights.can_view_statement() %}
{% set can_add_contest = g.gatekeeper.rights_generic().have_right(Right.add_contest) %}
{% block title %}{{ round.name }} {{ round.round_code() }}{% endblock %}
{% block title %}
{% if in_hier %}
{{ round.round_code() }}: {{ ctx.hier_place.name }}
{% else %}
{{ round.name }} {{ round.round_code() }}
{% endif %}
{% endblock %}
{% block breadcrumbs %}
{{ contest_breadcrumbs(round=round) }}
{{ ctx.breadcrumbs() }}
{% endblock %}
{% block body %}
<table class=data style="float: left; margin-right: 10px;">
<thead>
<tr><th colspan=2>Parametry kola <i>(nelze editovat)</i>
<tr><th colspan=2>Parametry kola{% if can_manage_round %} <i>(nelze editovat)</i>{% endif %}
</thead>
<tr><td>Ročník<td>{{ round.year }}
<tr><td>Kategorie<td>{{ round.category }}
@@ -22,7 +36,7 @@
<tr><td>Skupina kol:<td>
{% for r in group_rounds %}
{% if r == round %}<i>{{ r.name }} {{ r.round_code() }} (toto kolo)</i><br>
{% else %}<a href="{{ url_for('org_round', id=r.round_id) }}">{{ r.name }} {{ r.round_code() }}</a><br>
{% else %}<a href="{{ url_for('org_round', round_id=r.round_id) }}">{{ r.name }} {{ r.round_code() }}</a><br>
{% endif %}
{% endfor %}
{% endif %}
@@ -50,7 +64,7 @@
{% if not statement_exists %}
<span class=error>soubor neexistuje</span>
{% elif can_view_statement %}
<a href='{{ url_for('org_task_statement', id=round.round_id) }}'>stáhnout</a>
<a href='{{ ctx.url_for('org_task_statement') }}'>stáhnout</a>
{% else %}
není dostupné
{% endif %}
@@ -59,7 +73,7 @@
{% endif %}
<thead>
<tr><th colspan=2>Nastavení výsledkové listiny{% if round.is_subround() %}
<i>(přejato z <a href="{{ url_for('org_round', id=round.master.round_id) }}">{{ round.master.round_code() }}</a>)</i>
<i>(přejato z <a href="{{ url_for('org_round', round_id=round.master.round_id) }}">{{ round.master.round_code() }}</a>)</i>
{% endif %}
</thead>
<tr><td>Výsledková listina<td>{{ round.master.score_mode.friendly_name() }}
@@ -69,49 +83,74 @@
</table>
<div style="clear: both;"></div>
{% if can_view_contestants or can_manage_contest or can_manage_round or round.has_messages %}
<div class="btn-group">
<a class="btn btn-primary" href='{{ url_for('org_round_list', id=round.round_id) }}'>Seznam účastníků</a>
{% if round.state in [RoundState.grading, RoundState.closed, RoundState.delegate] %}
<a class="btn btn-primary" href='{{ url_for('org_score', round_id=round.round_id) }}'>Výsledky</a>
{% if can_view_contestants %}
<a class="btn btn-primary" href='{{ ctx.url_for('org_generic_list') }}'>Seznam účastníků</a>
{% endif %}
{% if can_view_contestants and round.state in [RoundState.grading, RoundState.closed, RoundState.delegate] and not in_hier %}
<a class="btn btn-primary" href='{{ ctx.url_for('org_score') }}'>Výsledky</a>
{% endif %}
{% if can_manage_contestants %}
<a class="btn btn-default" href='{{ url_for('org_round_import', id=round.round_id) }}'>Importovat data</a>
{% if can_manage_contest %}
<a class="btn btn-default" href='{{ ctx.url_for('org_generic_import') }}'>Importovat data</a>
{% endif %}
{% if can_manage_round %}
<a class="btn btn-default" href='{{ url_for('org_round_edit', id=round.round_id) }}'>Nastavení a termíny</a>
<a class="btn btn-default" href='{{ url_for('org_edit_statement', id=round.round_id) }}'>Zadání</a>
<a class="btn btn-default" href='{{ ctx.url_for('org_round_edit') }}'>Nastavení a termíny</a>
<a class="btn btn-default" href='{{ ctx.url_for('org_edit_statement') }}'>Zadání</a>
{% endif %}
{% if round.has_messages %}
<a class="btn btn-default" href='{{ url_for('org_round_messages', id=round.round_id) }}'>Zprávičky</a>
<a class="btn btn-default" href='{{ ctx.url_for('org_round_messages') }}'>Zprávičky</a>
{% endif %}
{% if g.user.is_admin %}
{% if g.user.is_admin and not in_hier %}
<a class="btn btn-default" href='{{ log_url('round', round.round_id) }}'>Historie</a>
{% endif %}
</div>
{% endif %}
<h3>Soutěže</h3>
{% if contests_counts %}
{% if reg_total.num_contests %}
{% set show_contests = reg_stats[0].contest != None %}
<table class=data>
<thead>
<tr>
{% if show_contests %}
<th>{{ round.get_level().name|capitalize }}
<th>Stav
{% else %}
<th>{{ reg_stats[0].region.type_name()|capitalize }}
<th>Počet soutěží
<th>Stavy soutěží
{% endif %}
<th>Počet účastníků
<th>Počet přihlášek
</tr>
</thead>
{% for (c, count) in contests_counts %}
{% for rs in reg_stats %}
<tr>
<td><a href='{{ url_for('org_contest', id=c.contest_id) }}'>{{ c.place.name }}</a>
{% with state=c.state %}
{% if show_contests %}
<td><a href='{{ url_for('org_contest', ct_id=rs.contest.contest_id) }}'>{{ rs.region.name }}</a>
{% with state=rs.contest.state %}
<td class='rstate-{{state.name}}'>{{ state.friendly_name() }}
{% endwith %}
<td>{{ count }}
{% else %}
<td><a href='{{ ctx.url_for('org_round', hier_id=rs.region.place_id) }}'>{{ rs.region.name }}</a>
<td>{{ rs.num_contests }}
<td>{% for s in rs.contest_states %}<span class='rstate-{{s.name}}'>{{ s.friendly_name() }}</span> {% endfor %}
{% endif %}
<td>{{ rs.num_active_pants }}
<td>{{ rs.num_unconfirmed_pants }}
{% endfor %}
<tfoot>
<tr>
<th>Celkem
{% if show_contests %}
<th>
<th>{{ contests_counts|sum(attribute=1) }}
{% else %}
<th>{{ reg_total.num_contests }}
<th>
{% endif %}
<th>{{ reg_total.num_active_pants }}
<th>{{ reg_total.num_unconfirmed_pants }}
</tr>
</tfoot>
</table>
@@ -128,7 +167,7 @@
{% endif %}
<h3>Úlohy</h3>
{% if tasks %}
{% if task_info %}
<table class=data>
<thead>
<tr>
@@ -140,15 +179,15 @@
{% if can_handle_submits or can_upload %}<th>Dávkové operace{% endif %}
</tr>
</thead>
{% for task in tasks %}
{% for task, sol_count in task_info %}
<tr>
<td>{{ task.code }}
<td>{{ task.name }}
<td>{{ task.sol_count }}
<td>{{ sol_count }}
<td>{{ task.max_points|decimal|none_value('–') }}
{% if can_manage_round %}
<td><div class="btn-group">
<a class="btn btn-xs btn-primary" href="{{ url_for('org_round_task_edit', id=round.round_id, task_id=task.task_id) }}">Editovat</a>
<a class="btn btn-xs btn-primary" href="{{ ctx.url_for('org_round_task_edit', task_id=task.task_id) }}">Editovat</a>
{% if task.sol_count == 0 %}
<form action="" method="POST" onsubmit="return confirm('Opravdu nenávratně smazat?')" class="btn-group">
{{ form_delete_task.csrf_token() }}
@@ -164,13 +203,13 @@
{% if can_handle_submits or can_upload %}
<td><div class="btn-group">
{% if can_handle_submits %}
<a class="btn btn-xs btn-primary" href="{{ url_for('org_round_task_download', round_id=round.round_id, task_id=task.task_id) }}">Stáhnout ZIP</a>
<a class="btn btn-xs btn-primary" href="{{ ctx.url_for('org_generic_batch_download', task_id=task.task_id) }}">Stáhnout ZIP</a>
{% endif %}
{% if can_upload %}
<a class="btn btn-xs btn-primary" href="{{ url_for('org_round_task_upload', round_id=round.round_id, task_id=task.task_id) }}">Nahrát ZIP</a>
<a class="btn btn-xs btn-primary" href="{{ ctx.url_for('org_generic_batch_upload', task_id=task.task_id) }}">Nahrát ZIP</a>
{% endif %}
{% if can_upload %}
<a class="btn btn-xs btn-default" href="{{ url_for('org_round_task_batch_points', round_id=round.round_id, task_id=task.task_id) }}">Nahrát body</a>
<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>
{% endif %}
@@ -181,7 +220,7 @@
<p>Zatím nebyly přidány žádné úlohy.</p>
{% endif %}
{% if can_manage_round %}
<a class="btn btn-primary right-float" href="{{ url_for('org_round_task_new', id=round.round_id) }}">Nová úloha</a>
<a class="btn btn-primary right-float" href="{{ ctx.url_for('org_round_task_new') }}">Nová úloha</a>
{% endif %}
{% endblock %}
Loading