Select Git revision
org_submit_list.html
-
Jan Prachař authoredJan Prachař authored
org_submit_list.html 8.14 KiB
{% extends "base.html" %}
{% import "bootstrap/wtf.html" as wtf %}
{% block title %}Řešení {{ sc.task.code }} {{ sc.task.name }} – {{ sc.user.full_name() }}{% endblock %}
{% block breadcrumbs %}
{{ contest_breadcrumbs(round=sc.round, contest=sc.contest, site=sc.site, task=sc.task, user=sc.user, action="Detail řešení") }}
{% endblock %}
{% block body %}
{% set site_id = sc.site.place_id if sc.site else None %}
<table class="data">
<tr><th>Účastník<td>{{ sc.user|pion_link(sc.contest.contest_id) }}
<tr><th>Úloha<td><a href='{{ url_for('org_contest_task', contest_id=sc.contest.contest_id, site_id=site_id, task_id=sc.task.task_id) }}'>{{ sc.task.code }} {{ sc.task.name }}</a>
{% if solution %}
<tr><th>Body<td>{% if solution.points is not none %}{{solution.points}}{% else %}<span class="unknown">?</span>{% endif %}
<tr title="Viditelná účastníkovi po uzavření kola">
<th>Poznámka k řešení:<td style="white-space: pre;">{{ solution.note|or_dash }}</td>
<tr title="Viditelná jen organizátorům">
<th>Interní poznámka:<td style="white-space: pre;">{{ solution.org_note|or_dash }}</td>
{% endif %}
</table>
{% include "parts/org_submit_warning.html" %}
{% if solution %}
<div class="tabbed">
<input type="radio" id="tab1" name="css-tabs" checked>
<input type="radio" id="tab2" name="css-tabs">
<input type="radio" id="tab3" name="css-tabs">
<ul class="tabs">
<li class="tab"><label for="tab1">Odevzdaná řešení ({{ sol_papers|length }})</label>
<li class="tab"><label for="tab2">Opravená řešení ({{ fb_papers|length }})</label>
<li class="tab"><label for="tab3">Historie udělených bodů</label>
</ul>
<div class="tab-content">
<p><i>
{% if sol_papers|length > 1 %}
Existuje více než jedna verze řešení, finální je podbarvená.
{% if set_final_form %}Pomocí přepínačů u řešení můžete prohlásit za finální řešení i jiné, než naposledy odevzdané. {% endif %}
{% endif %}
Účastník vždy vidí všechna svá řešení.
</i></p>
{% if sol_papers %}
<table class=data>
<thead>
<tr>
<th>Čas odevzdání
<th>Stránek
<th>Bajtů
<th>Odevzdal
<th>Poznámka
<th>Akce
<tbody>
{% if solution %}
{% set active_sol_id = solution.final_submit %}
{% else %}
{% set active_sol_id = None %}
{% endif %}
{% for p in sol_papers %}
{% set late = p.check_deadline(sc.round) %}
<tr{% if p.paper_id == active_sol_id %} class='sol-active'{% endif %}>
<td{% if late %} class='sol-warn'{% endif %}>{{ p.uploaded_at|timeformat }}
<td>{% if p.broken %}nekorektní PDF{% else %}{{ p.pages|or_dash }}{% endif %}
<td>{{ p.bytes|or_dash }}
<td>{{ p.uploaded_by_obj|user_link }}
<td>{% if late %}<span class='sol-warn'>({{ late }})</span> {% endif %}{{ p.note }}
<td><div class="btn-group">
<a class='btn btn-xs btn-primary' href='{{ paper_link(p) }}'>Stáhnout</a>
{% if p.paper_id != active_sol_id and set_final_form %}
<form class="btn-group" method="POST">
{{ set_final_form.csrf_token }}
<input type="hidden" name="type" value="submit"><input type="hidden" name="paper_id" value="{{ p.paper_id }}">
{{ wtf.form_field(set_final_form.submit_final, class="btn btn-xs btn-default") }}
</form>
{% endif %}
</div>
{% endfor %}
</table>
{% else %}
<p>Žádná.
{% endif %}
</div>
<div class="tab-content">
<p><i>
{% if fb_papers|length > 1 %}
Existuje více než jedna verze oprav, finální je podbarvená.
{% if set_final_form %}Pomocí přepínačů u oprav můžete prohlásit za finální opravu i jinou, než naposledy nahranou. {% endif %}
Účastník po uzavření kola uvidí jen finální opravu a ani se nedozví, kolik různých verzí existovalo.
{% else %}
Účastník uvidí finální opravu po uzavření kola.
{% endif %}
</i></p>
{% if fb_papers %}
<table class=data>
<thead>
<tr>
<th>Čas odevzdání
<th>Stránek
<th>Bajtů
<th>Odevzdal
<th>Poznámka
<th>Akce
<tbody>
{% if solution %}
{% set active_fb_id = solution.final_feedback %}
{% else %}
{% set active_fb_id = None %}
{% endif %}
{% for p in fb_papers %}
<tr{% if p.paper_id == active_fb_id %} class='sol-active'{% endif %}>
<td>{{ p.uploaded_at|timeformat }}
<td>{% if p.broken %}nekorektní PDF{% else %}{{ p.pages|or_dash }}{% endif %}
<td>{{ p.bytes|or_dash }}
<td>{{ p.uploaded_by_obj|user_link }}
<td>{{ p.note }}
<td><div class="btn-group">
<a class='btn btn-xs btn-primary' href='{{ paper_link(p) }}'>Stáhnout</a>
{% if p.paper_id != active_fb_id and set_final_form %}
<form class="btn-group" method="POST">
{{ set_final_form.csrf_token }}
<input type="hidden" name="type" value="feedback"><input type="hidden" name="paper_id" value="{{ p.paper_id }}">
{{ wtf.form_field(set_final_form.submit_final, class="btn btn-xs btn-default") }}
</form>
{% endif %}
</div>
{% endfor %}
</table>
{% else %}
<p>Žádná.
{% endif %}
</div>
<div class="tab-content">
{% if points_history %}
<p><i>Účastník po uzavření kola uvidí jen naposledy zadané body.</i></p>
<table class=data>
<thead>
<tr>
<th>Čas udělení
<th>Počet bodů
<th>Udělil/a
<tbody>
{% for p in points_history %}
<tr {% if loop.index == 1 %} class='sol-active'{% endif %}>
<td>{{ p.points_at|timeformat }}
<td>{% if p.points is not none %}{{ p.points }}{% else %}–{% endif %}
<td>{{ p.user|user_link }}
</tr>
{% endfor %}
</table>
{% else %}
<p>Zatím nebyly uděleny žádné body.
{% endif %}
</div>
</div>
{% else %}
<p>Žádné odevzdané řešení. {% if form and sc.allow_edit_points %}Můžete ho založit pomocí formuláře níže.{% endif %}
{% endif %}
{% if form and (sc.allow_edit_points or sc.allow_upload_feedback or sc.allow_upload_solutions) %}
<form method="post" class="form-horizontal" enctype="multipart/form-data">
<div class="form-frame">
{{ form.csrf_token }}
{% set action = 'Uložit' if solution else 'Založit řešení' %}
{% if sc.allow_edit_points %}
{% if solution %}
<h3 style="margin-top: 10px;">Hodnocení řešení</h3>
{% else %}
<h3>Založit řešení</h3>
<p><i>Můžete rovnou vyplnit i poznámky a přidělené body
{%- if sc.allow_upload_feedback or sc.allow_upload_solutions %}, případně rovnou nahrát i soubor řešení nebo opravy{% endif %}.
</i></p>
{% endif %}
{{ wtf.form_field(form.note, form_type='horizontal', horizontal_columns=('sm', 2, 10), rows=4)}}
{{ wtf.form_field(form.org_note, form_type='horizontal', horizontal_columns=('sm', 2, 10), rows=4 )}}
{{ wtf.form_field(form.points, form_type='horizontal', horizontal_columns=('sm', 2, 10) )}}
{{ wtf.form_field(
form.submit, form_type='horizontal', class='btn btn-primary', horizontal_columns=('sm', 2, 10),
value=action + (' bez nahrání souboru' if sc.allow_upload_feedback or sc.allow_upload_solutions else '')
)}}
{% endif %}
{% if sc.allow_upload_feedback or sc.allow_upload_solutions %}
{% if solution %}
<h3>Nahrání souboru</h3>
{% if sc.allow_edit_points %}
<p><i>Lze najednou editovat řešení (například zadat body) i nahrát soubor, použijte tlačítka na spodku formuláře.</i></p>
{% endif %}
{% else %}
<h3>Založit řešení a nahrát soubor</h3>
{% endif %}
{{ wtf.form_field(form.file, form_type='horizontal', horizontal_columns=('sm', 2, 10)) }}
{{ wtf.form_field(form.file_note, form_type='horizontal', horizontal_columns=('sm', 2, 10)) }}
<div class="form-group">
<div class="btn btn-group col-sm-offset-2">
{% if sc.allow_upload_solutions %}
{{ wtf.form_field(form.submit_sol, class='btn btn-primary', value=action + ' a nahrát soubor jako řešení' )}}
{% endif %}
{% if sc.allow_upload_feedback %}
{{ wtf.form_field(form.submit_fb, class='btn btn-success', value=action + ' a nahrát soubor jako opravu' )}}
{% endif %}
</div>
</div>
{% endif %}
</div>
{% if solution and not solution.final_submit and not solution.final_feedback and sc.allow_create_solutions %}
<div class="form-frame">
<h3 style="margin-top: 10px;">Smazání řešení</h3>
<p>Toto řešení zatím neobsahuje žádný soubor. Pokud bylo přidáno omylem, můžete ho smazat.</p>
{{ wtf.form_field(form.delete, class='btn btn-danger') }}
</div>
{% endif %}
</form>
{% endif %}
{% endblock %}