Select Git revision
org_solution_table.html
Jiří Setnička authored
Vytvořen nový endpoint org_contest_task_create. Vše v pozadí obsluhuje stejná univerzální tabulka, jen na správných místech vypisuje správné formuláře ve správném módu (má teď mód zobrazení, zakládání řešení a bodování). Přidány odkazy z různých míst.
org_solution_table.html 4.60 KiB
<p><i>{% if for_user %}U každé úlohy je zobrazeno účastníkovo {% else %}U každého účastníka je zobrazeno jeho {% endif %}
finální řešení, finální oprava a přidělené body. Historii všech odevzdání, oprav a bodů naleznete v detailu řešení.
{% if sc.allow_upload_feedback or sc.allow_edit_points %}Tamtéž můžete odevzdávat nové verze a změnit, které řešení/oprava je
finální (ve výchozím stavu poslední nahrané).{% elif sc.allow_upload_solutions %}Tamtéž můžete odevzdat nové řešení.{% endif %}
</i></p>
<p><i>Legenda k symbolům: <span class='sol-warn icon'>⚠</span> odevzdané po termínu,
<span class="icon">🛈</span> nahráno někým jiným, než řešitelem, <span class="icon">🗐</span> existuje více verzí. Symboly po najetí myší zobrazí bližší informace.
</i></p>
<table class="data full">
<thead>
<tr>
<th>{% if for_user %}Úloha{% else %}Účastník{% endif %}
{% if for_task %}<th>Stav účasti{% endif %}
<th>Finální řešení
<th>Finální oprava
<th>Poznámky
<th>Přidělené body
{% if not for_user and not site and sc.allow_edit_points and not points_form %}
<a title="Editovat body" href="{{ url_for('org_contest_task_points', contest_id=contest.contest_id, task_id=task.task_id) }}" class="icon pull-right">✎</a>
{% endif %}
<th>Akce
</tr>
</thead>
{% for obj, sol in rows %}
{% set u = for_user or obj.user %}
{% set task = for_task or obj %}
{% if for_task %}
<tr class="state-{{ obj.state.name }}{% if u.is_test %} testuser{% endif %}" {% if u.is_test %}title="Testovací uživatel"{% endif %}>
{% else %}
<tr>
{% endif %}
<td>{% if for_user %}
<a href='{{ url_for('org_contest_task', contest_id=ct_id, task_id=task.task_id) }}'>{{ task.code }} {{ task.name }}</a>
{% else %}
{{ u|pion_link(obj.contest_id) }}</a>
{% endif %}
{% if for_task %}<td>{{ obj.state.friendly_name() }}{% endif %}
{% if sol %}
<td>{% if sol.final_submit_obj %}
{% set p = sol.final_submit_obj %}
{% set late = p.check_deadline(round) %}
{% if late %}<span class='sol-warn icon' title="{{ late }}">⚠</span>{% endif %}
<a href='{{ paper_link(u, p) }}'>
{{- p.uploaded_at|timeformat }}
{% if p.broken %}
(nekorektní PDF)
{% elif p.pages != None %}
({{ p.pages|inflected('strana', 'strany', 'stran') }})
{% endif %}
</a>
{% if p.uploaded_by_obj != u %}
<a href="{{ url_for('org_user', id=p.uploaded_by) }}" title="nahrál {{ p.uploaded_by_obj.full_name() }}" class="icon">🛈</a>
{% endif %}
{% set key = (obj.task_id if for_user else obj.user_id, "solution") %}
{% if key in paper_counts and paper_counts[key] > 1 %}
<span title="Celkem {{ paper_counts[key]|inflected('verze', 'verze', 'verzí') }}" class="icon">🗐</span>
{% endif %}
{% else %}–{% endif %}
<td>{% if sol.final_feedback_obj %}
{% set p = sol.final_feedback_obj %}
<a title="nahrál {{ p.uploaded_by_obj.full_name() }}" href='{{ paper_link(u, p) }}'>
{{ (p.uploaded_at if p else None)|timeformat }}
{% if p.broken %}
(nekorektní PDF)
{% elif p.pages != None %}
({{ p.pages|inflected('strana', 'strany', 'stran') }})
{% endif %}
</a>
{% set key = (obj.task_id if for_user else obj.user_id, "feedback") %}
{% if key in paper_counts and paper_counts[key] > 1 %}
<span title="Celkem {{ paper_counts[key]|inflected('verze', 'verze', 'verzí') }}" class="icon">🗐</span>
{% endif %}
{% else %}–{% endif %}
<td style="text-align: center;">
{% if sol.note %}<span class="icon" title="Poznámka pro řešitele: {{ sol.note }}">🗩</span>{% endif %}
{% if sol.org_note %} <span class="icon" title="Interní poznámka: {{ sol.org_note }}">🗩</span>{% endif %}
<td>
{% if points_form %}
<input type="number" class="form-control" name="points_{{u.user_id}}" value="{{ request_form.get("points_{}".format(u.user_id)) or sol.points }}" size="4">
{% else %}
{% if sol.points is not none %}{{ sol.points}}{% else %}<span class="unknown">?</span>{% endif %}
{% endif %}
{% else %}
<td colspan="4" class="text-center">
{% if create_form %}
<input type="checkbox" name="create_sol_{{u.user_id}}" id="create_sol_{{u.user_id}}"{% if request_form.get("create_sol_{}".format(u.user_id)) %}checked{% endif %}>
<label for="create_sol_{{u.user_id}}">Založit řešení</label>
{% else %}–{% endif %}
{% endif %}
<td><div class="btn-group">
<a class="btn btn-xs btn-primary" href="{{ url_for('org_submit_list', contest_id=ct_id, user_id=u.user_id, task_id=task.task_id, site_id=site_id) }}">Detail</a>
</div>
</tr>
{% endfor %}
</table>