From 8c072e5d1202b034f40be09ae6d7a0ca30159ea3 Mon Sep 17 00:00:00 2001
From: Martin Mares <mj@ucw.cz>
Date: Sat, 29 Oct 2022 16:08:08 +0200
Subject: [PATCH] =?UTF-8?q?Pr=C5=AFvodce:=20Z=C3=A1klad?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Průvodce organizátora soutěží.
Closes #276.
---
mo/web/templates/org_contest.html | 4 +
mo/web/templates/parts/org_contest_guide.html | 106 ++++++++++++++++++
2 files changed, 110 insertions(+)
create mode 100644 mo/web/templates/parts/org_contest_guide.html
diff --git a/mo/web/templates/org_contest.html b/mo/web/templates/org_contest.html
index 333511d3..13843d4e 100644
--- a/mo/web/templates/org_contest.html
+++ b/mo/web/templates/org_contest.html
@@ -99,6 +99,10 @@
<p class='space-top rights-elsewhere'>Další akce můžete provádět na stránce své soutěže nebo soutěžního místa. {{ rights_elsewhere_info() }}
{% endif %}
+{% if can_manage and round.round_type in [RoundType.domaci, RoundType.skolni, RoundType.okresni] %}
+{% include "parts/org_contest_guide.html" %}
+{% endif %}
+
{% if not site %}
<h3>Soutěžní místa</h3>
{% if places_counts %}
diff --git a/mo/web/templates/parts/org_contest_guide.html b/mo/web/templates/parts/org_contest_guide.html
new file mode 100644
index 00000000..5240ffd4
--- /dev/null
+++ b/mo/web/templates/parts/org_contest_guide.html
@@ -0,0 +1,106 @@
+{# Includuje se z org_contest.html, dostaneme: contest, round, state, ct_state #}
+
+{% set round_type = round.round_type %}
+
+<h3>Průvodce pro garanty</h3>
+
+<p>Průvodce popisuje, co by měl garant v tomto stavu soutěže udělat.
+
+<ul>
+
+{% if state == RoundState.preparing %}
+
+ <li>Počkejte, až bude soutěž v této kategorii otevřena.
+
+{% elif state == RoundState.running %}
+
+ {% if round_type == RoundType.domaci %}
+ <li>Účastníci se přihlašují sami, vidíte je v <a href='{{ ctx.url_for('org_generic_list') }}'>seznamu soutěžících</a>.
+ {% else %}
+ <li>Zkontrolujte <a href='{{ ctx.url_for('org_generic_list') }}'>seznam soutěžících</a>.
+ <ul>
+ <li>Můžete nechat účastníky <a href='{{ ctx.url_for('org_contest_advance') }}'>postoupit z minulého kola</a>.
+ <li>Můžete účastníka <a href='{{ ctx.url_for('org_contest_add_user') }}'>ručně přidat</a>.
+ </ul>
+ {% endif %}
+
+ {% if round_type not in [RoundType.domaci, RoundType.skolni] %}
+ <li>Rozešlete soutěžícím pozvánky (TODO).
+ {% endif %}
+
+ {% if round_type != RoundType.domaci %}
+ <li>Pokud chcete, vytiskněte <a href='{{ ctx.url_for('org_contest_protocols') }}'>hlavičkové papíry na protokoly</a>.
+ {% endif %}
+
+ <li>Počkejte, až uplyne termín odevzdání a garant kategorie přepne soutěž do stavu „opravuje se“.
+
+{% elif state in [RoundState.grading, RoundState.graded] %}
+
+ {% if state == RoundState.grading %}
+
+ <li>Zkontrolujte <a href='{{ ctx.url_for('org_generic_list') }}'>seznam soutěžících</a>.
+ {% if round_type != RoundType.domaci %}
+ <ul>
+ <li>Pokud se některý z účastníků nedostavil, označte ho jako nepřítomného.
+ </ul>
+ {% endif %}
+
+ <li>Nahrajte opravené protokoly:
+ <ul>
+ {% if round.category in "ABC" and round_type == RoundType.skolni %}
+ <li>Protokoly úspěšných řešitelů předejte krajskému garantovi, ideálně nahráním do OSMO.
+ {% else %}
+ <li>Nahrávání protokolů je v tomto kole nepovinné, ale pokud to uděláte, soutěžící je v OSMO uvidí.
+ {% endif %}
+ <li>Nahrávat můžete každý protokol zvlášť: nejdříve zadejte body (viz dále), pak použijte tlačítko „Odevzdaná řešení“ v seznamu úloh níže.
+ {% if round_type != RoundType.domaci %}
+ <li>Pokud soutěžící psali na hlavičkové papíry, můžete je oskenovat a <a href='{{ ctx.url_for('org_contest_scans') }}'>automaticky roztřídit</a>.
+ {% endif %}
+ </ul>
+
+ <li>Zadejte body za jednotlivá řešení:
+ <ul>
+ {% if (round.category in "ABC" and round_type == RoundType.skolni) or round_type == RoundType.okresni %}
+ <li>Zadávání bodů je v tomto kole povinné.
+ {% else %}
+ <li>Zadávání bodů je v tomto kole nepovinné, ale OSMO pak umí sestavit výsledkovou listinu.
+ {% endif %}
+ <li>Body můžete vyplnit za každou úlohu zvlášť (tlačítko „Zadat body / založit řešení“ v seznamu úloh níže).
+ <li>Také můžete nahrát celkovou bodovací tabulku (TODO).
+ </ul>
+
+ <li>Pak můžete ukázat body soutěžícím, než soutěž uzavřete (TODO).
+
+ {% endif %}
+
+ <li>Sestavte <a href='{{ ctx.url_for('org_score') }}'>výsledkovou listinu</a>:
+ <ul>
+ {% if round_type == RoundType.okresni %}
+ <li>Sestavení listiny je v tomto kole povinné.
+ {% else %}
+ <li>Sestavení listiny je v tomto kole nepovinné.
+ {% endif %}
+ <li>Po zobrazení listiny zmáčkněte tlačítko „Uložit současnou verzi“.
+ <li>Listinu ještě jednou zkontrolujte a zmáčkňěte „Zveřejnit tuto verzi“.
+ </ul>
+
+ <li>Až bude vše hotovo, uzavřete soutěž (TODO).
+
+{% elif state == RoundState.closed %}
+
+ <li>Soutěž je uzavřena, už není potřeba dělat nic dalšího.
+
+ <li>Kdybyste potřebovali upravit nějaké údaje,
+ {% if round.state == RoundState.closed %}
+ kontaktujte správce.
+ {% else %}
+ přepněte soutěž zpět do stavu „opravuje se“ (TODO).
+ {% endif %}
+
+{% else %}
+
+<li>Soutěž je v neznámém stavu, musí zasáhnout správce.
+
+{% endif %}
+
+</ul>
--
GitLab