Skip to content
Snippets Groups Projects
Select Git revision
  • 3f31c85186ae74ae92977e885189b7e1bfc60d5c
  • devel default
  • master
  • fo
  • jirka/typing
  • fo-base
  • mj/submit-images
  • jk/issue-96
  • jk/issue-196
  • honza/add-contestant
  • honza/mr7
  • honza/mrf
  • honza/mrd
  • honza/mra
  • honza/mr6
  • honza/submit-images
  • honza/kolo-vs-soutez
  • jh-stress-test-wip
  • shorten-schools
19 results

org_round.html

Blame
  • Jiří Setnička's avatar
    Jiří Setnička authored
    Při vytvoření podkola se vytvoří i všechny podsoutěže, při mazání se zase smaží
    a při vytvoření nové soutěže se tato vytvoří i v podkolech.
    
    Mazat podkola se dá jen, pokud nemá žádné úlohy (což tranzitivně zaručuje i žádné
    řešení, body, ...).
    
    V podkolech se nedají editovat soutěže nebo vytvářet další podkola.
    
    Issue #178
    3f31c851
    History
    org_round.html 7.72 KiB
    {% extends "base.html" %}
    {% import "bootstrap/wtf.html" as wtf %}
    
    {% block title %}{{ round.master.name }} {{ round.master.round_code() }}{% if round.is_subround() %} (podkolo {{ round.name }}){% endif %}{% endblock %}
    {% block breadcrumbs %}
    {{ contest_breadcrumbs(round=round) }}
    {% endblock %}
    
    {% block body %}
    
    <table class=data>
    	<tr><td>Ročník<td>{{ round.year }}
    	<tr><td>Kategorie<td>{{ round.category }}
    	<tr><td>Pořadí<td>{{ round.seq }}
    	<tr><td>Oblast<td>{{ level_names[round.level] }}
    	<tr><td>Vaše role<td>{% if roles %}{{ roles|join(", ") }}{% else %}–{% endif %}
    	{% if round.is_subround() %}
    	<tr><td>Nadřazené kolo:<td><a href="{{ url_for('org_round', id=round.master_round_id) }}">{{ round.master.name }} {{ round.master.round_code() }} </a>
    	{% endif %}
    	<tr><th colspan=2><h4>Nastavení kola:</h4>
    	<tr><td>Název<td>{{ round.name }}
    	<tr><td>Stav<td class='rstate-{{round.state.name}}'>{{ round.state.friendly_name() }}
    	<tr><td>Účastníci vidí zadání od<td>{{ round.ct_tasks_start|timeformat }}
    	<tr><td>Účastníci odevzdávají do<td>{{ round.ct_submit_end|timeformat }}
    	<tr><td>Dozor vidí zadání od<td>{{ round.pr_tasks_start|timeformat }}
    	<tr><td>Dozor odevzdává do<td>{{ round.pr_submit_end|timeformat }}
    	<tr><td>Zadání<td>
    {% if round.tasks_file %}
    	{% if can_view_statement %}
    		<a href='{{ url_for('org_task_statement', id=round.round_id) }}'>stáhnout</a>
    	{% else %}
    		není dostupné
    	{% endif %}
    {% else %}
    	–
    {% endif %}
    	{% if not round.is_subround() %}
    	<tr><td>Výsledková listina<td>{{ round.score_mode.friendly_name() }}
    	<tr><td>Hranice bodů pro vítěze<td>{{ round.score_winner_limit|none_value(Markup('<i>nenastaveno</i>')) }}
    	<tr><td>Hranice bodů pro úspěšné řešitele<td>{{ round.score_successful_limit|none_value(Markup('<i>nenastaveno</i>')) }}
    	{% endif %}
    </table>
    
    <div class="btn-group">
    {% if round.is_subround() %}
    	<a class="btn btn-primary" href='{{ url_for('org_round_list', id=round.master_round_id) }}'>Seznam účastníků nadřazeného kola</a>
    	{% if round.master.state in [RoundState.grading, RoundState.closed] %}
    	<a class="btn btn-primary" href='{{ url_for('org_score', round_id=round.master_round_id) }}'>Výsledky nadřazeného kola</a>
    	{% endif %}
    {% else %}
    	<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] %}
    	<a class="btn btn-primary" href='{{ url_for('org_score', round_id=round.round_id) }}'>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>
    	{% endif %}
    {% endif %}
    	{% if can_manage_round %}
    	<a class="btn btn-default" href='{{ url_for('org_round_edit', id=round.round_id) }}'>Editovat nastavení kola</a>
    	{% endif %}
    	{% if g.user.is_admin %}
    	<a class="btn btn-default" href='{{ log_url('round', round.round_id) }}'>Historie</a>
    	{% endif %}
    </div>
    <br><br>
    
    {% if not round.is_subround() %}
    <div class="box-frame">
    <h3>Podkola</h3>
    {% if subrounds and subrounds|length > 1 %}
    <table class=data>
    	<thead>
    		<tr>
    			<th rowspan=2>Podkolo
    			<th rowspan=2>Počet úloh
    			<th rowspan=2>Stav
    			<th colspan=2>Účastníci
    			<th colspan=2>Dozor
    			<th rowspan=2>Akce
    		<tr>
    			<th>Zadání od
    			<th>Odevzdávání do
    			<th>Zadání od
    			<th>Odevzdávání do
    	</thead>
    	{% for (subround, tasks_count) in subrounds %}
    	<tr>
    		<td>{% if subround == round %}
    			<b>Toto kolo: {{ subround.name }}</b>
    		{% else %}
    			<a href="{{ url_for('org_round', id=subround.round_id) }}">{{ subround.name }}</a>
    		{% endif %}
    		<td>{{ tasks_count }}
    		<td class='rstate-{{subround.state.name}}'>{{ subround.state.friendly_name() }}
    		<td>{{ subround.ct_tasks_start|timeformat }}
    		<td>{{ subround.ct_submit_end|timeformat }}
    		<td>{{ subround.pr_tasks_start|timeformat }}
    		<td>{{ subround.pr_submit_end|timeformat }}
    		<td><div class="btn-group">
    		{% if subround != round %}
    			<a class="btn btn-xs btn-primary" href="{{ url_for('org_round', id=subround.round_id) }}">Detail</a>
    			{% if can_manage_round and tasks_count == 0 %}
    			<form action="" method="POST" onsubmit="return confirm('Opravdu nenávratně smazat?')" class="btn-group">
    				{{ form_delete_subround.csrf_token() }}
    				<input type="hidden" name="delete_subround_id" value="{{ subround.round_id }}">
    				<button type="submit" class="btn btn-xs btn-danger">Smazat podkolo</button>
    			</form>
    			{% endif %}
    		{% endif %}
    		</div>
    	{% endfor %}
    </table>
    {% else %}
    <p><i>Žádná podkola nebyla založena, vše se koná pod hlavním kolem.</i></p>
    {% endif %}
    
    {% if can_manage_round %}
    <form action="" method="POST" class="form-inline">
    	{{ form_add_subround.csrf_token() }}
    	{{ wtf.form_field(form_add_subround.name) }}
    	{{ wtf.form_field(form_add_subround.create_subround) }}
    </form>
    {% endif %}
    </div>
    {% endif %}
    
    <div class="box-frame">
    <h3>Soutěže</h3>
    {% if round.is_subround() %}<p><i>Soutěže jsou synchronizovány s nadřazeným kolem.</i></p>{% endif %}
    {% if contests_counts %}
    <table class=data>
    	<thead>
    		<tr>
    			<th>Soutěžní oblasti
    			<th>Počet účastníků
    		</tr>
    	</thead>
    	{% for (c, count) in contests_counts %}
    	<tr>
    		<td><a href='{{ url_for('org_contest', id=c.contest_id) }}'>{{ c.place.name }}</a>
    		<td>{{ count }}
    	{% endfor %}
    	<tfoot>
    		<tr>
    			<th>Celkem
    			<th>{{ contests_counts|sum(attribute=1) }}
    		</tr>
    	</tfoot>
    </table>
    {% else %}
    <p>Zatím nebyly založeny v žádné oblasti.
    {% endif %}
    
    {% if not round.is_subround() and can_add_contest %}
    <form action="" method="POST" class="form-inline">
    	{{ form_add_contest.csrf_token() }}
    	{{ wtf.form_field(form_add_contest.place_code) }}
    	{{ wtf.form_field(form_add_contest.create_contest) }}
    </form>
    {% endif %}
    </div>
    
    <div class="box-frame">
    <h3>Úlohy</h3>
    {% if tasks %}
    <table class=data>
    	<thead>
    		<tr>
    			<th>Kód
    			<th>Název
    			<th>Odevzdaná řešení
    			{% if can_manage_round %}<th>Akce{% endif %}
    			{% if can_handle_submits or can_upload %}<th>Dávkové operace{% endif %}
    		</tr>
    	</thead>
    	{% for task in tasks %}
    		<tr>
    			<td>{{ task.code }}
    			<td>{{ task.name }}
    			<td>{{ task.sol_count }}
    			{% 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>
    				{% if task.sol_count == 0 %}
    				<form action="" method="POST" onsubmit="return confirm('Opravdu nenávratně smazat?')" class="btn-group">
    					{{ form_delete_task.csrf_token() }}
    					<input type="hidden" name="delete_task_id" value="{{ task.task_id }}">
    					<button type="submit" class="btn btn-xs btn-danger">Smazat</button>
    				</form>
    				{% endif %}
    				{% if g.user.is_admin %}
    				<a class="btn btn-xs btn-default" href="{{ log_url('task', task.task_id) }}">Historie</a>
    				{% endif %}
    			</div>
    			{% endif %}
    			{% 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>
    				{% 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>
    				{% 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>
    				{% endif %}
    			</div>
    			{% endif %}
    		</tr>
    	{% endfor %}
    </table>
    {% else %}
    <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>
    {% endif %}
    </div>
    
    {% endblock %}