From 85b83363ad651c3f5cf9a6162419246b1b30ec1c Mon Sep 17 00:00:00 2001
From: Martin Mares <mj@ucw.cz>
Date: Sun, 3 Jan 2021 22:01:08 +0100
Subject: [PATCH] Dokumentace pro garanty

---
 mo/web/main.py                   |   5 ++
 mo/web/templates/doc_garant.html | 124 +++++++++++++++++++++++++++++++
 mo/web/templates/org_index.html  |   1 +
 3 files changed, 130 insertions(+)
 create mode 100644 mo/web/templates/doc_garant.html

diff --git a/mo/web/main.py b/mo/web/main.py
index db4b1f4e..c05c0ad7 100644
--- a/mo/web/main.py
+++ b/mo/web/main.py
@@ -136,3 +136,8 @@ def reset():
 @app.route('/')
 def index():
     return render_template('main.html')
+
+
+@app.route('/doc/garant')
+def doc_garant():
+    return render_template('doc_garant.html')
diff --git a/mo/web/templates/doc_garant.html b/mo/web/templates/doc_garant.html
new file mode 100644
index 00000000..911fdd33
--- /dev/null
+++ b/mo/web/templates/doc_garant.html
@@ -0,0 +1,124 @@
+{% extends "base.html" %}
+{% block body %}
+<h2>Návod pro garanty</h2>
+
+<p><b>Varování:</b> Systém je ve vývoji. Spoustu věcí ještě neumí. Kdybyste
+narazili na jakoukoliv chybu, dejte prosím vědět správcům (viz odkaz v patičce
+každé stránky). Stejně tak kdybyste neuměli nějaká data upravit.
+
+<h3>Účty a role</h3>
+
+<p>Každý <b>účet</b> v systému je jednoznačně idenfitikovaný e-mailovou
+adresou. Rozlišujeme účty účastníků, organizátorů a správců.
+Organizátorské účty mohou mít přiděleny <b>role</b> pro jednotlivé
+oblasti (kraje, okresy, školy), kategorie či kola soutěže.
+
+<p>Existují tyto role:
+
+<ul>
+	<li><b>celostátní garant</b> – má právo spravovat soutěž, zakládat
+		účty účastníkům a registrovat je do soutěže, zakládat účty
+		organizátorům a přidělovat jim role, spravovat odevzdaná řešení
+	<li><b>krajský garant</b> – má právo spravovat soutěž ve svém kraji
+		(systém dovolí tuto roli přidělit i na jiné úrovni než kraj,
+		ale nedělejte to prosím)
+	<li><b>okresní garant</b> – má právo spravovat soutěž ve svém okrese
+		(systém dovolí tuto roli přidělit i na jiné úrovni než okres,
+		ale nedělejte to prosím)
+	<li><b>dozor</b> – může v rámci nějakého soutěžního místa (to je třeba škola)
+		odevzdávat řešení za účastníky, a to i po oficiálním konci soutěže
+	<li><b>opravovatel</b> (bude definováno později)
+</ul>
+
+<p>Role se přidělují takto:
+
+<ul>
+	<li>V záložce „Organizátoři“ se pokusíte příslušného organizátora najít.
+	<li>Pokud tam ještě není, tlačítkem „Nový organizátor“ mu založíte účet.
+	    Systém automticky pošle e-mail s odkazem na nastavení hesla.
+	<li>Pak tlačítkem „Detail“ přejdete na informace o účtu, kde najdete
+	    i formulář na přidělování rolí.
+</ul>
+
+<h3>Hierarchie míst</h3>
+
+<p>Jednotlivé oblasti a školy, kde se soutěží, jsou zařazeny do hierarchie <b>míst</b>.
+Jsou to:
+
+<ul>
+	<li><b>stát</b>
+	<li><b>kraj</b>
+	<li><b>okres</b>
+	<li><b>obec</b>
+	<li><b>škola</b> či obecné <b>soutěžní místo</b>
+</ul>
+
+<p>Každé místo má přiřazeno <b>jméno</b>, pod kterým se uvádí na webu, ve výsledkových listinách apod.
+Také může mít nepovinný <b>kód</b> z písmen a číslic – pomocí něj se na místo odkazuje v tabulkách.
+Kraje a okresy mají kódy podle automobilových SPZ. Dalším místům je můžete přidělit. Nemá-li místo
+kód, použije se interní ve tvaru <tt>#</tt><i>číslo</i>.
+
+<p>Místa od obce níže mohou editovat garanti, vyšší oblasti pouze správce.
+
+<h3>Soutěžní kola</h3>
+
+<p>Olympiáda se skládá ze <b>soutěžních kol</b>. Každé kolo má tyto vlastnosti:
+
+<ul>
+	<li><b>ročník MO</b> (nyní 70)
+	<li><b>kategorie</b> (A, P, Z5, &hellip;)
+	<li><b>pořadí</b> v rámci kategorie (1, 2, &hellip;)
+	<li><b>úroveň</b> v hierarchii míst, na které se odehrává (to může být celá republika,
+		kraj, okres apod.). Odpovídá tomu, pro jaké oblasti se sestavují samostatné
+		výsledkové listiny.
+	<li><b>název</b> – třeba „Krajské kolo“
+</ul>
+
+<p>Pro každé kolo pak existují <b>soutěže</b> – instance kola v jednotlivých oblastech.
+Např. krajské kolo má samostatnou soutěž v každém kraji.
+
+<p>Kola a soutěže zatím zakládá správce, o úpravy mu řekněte.
+
+<h3>Účastníci</h3>
+
+<p>Garanti mohou přihlašovat účastníky do soutěže <b>importem</b> souboru ve formátu CSV.
+Tento soubor můžete vyrobit v Excelu či jiném tabulkovém kalkulátoru a pak do CSV exportovat.
+Přečtěte si prosím <a href='{{ url_for('doc_import_contest') }}'>popis formátu</a>.
+
+<p>Import najdete v záložce „Soutěž“, kde si nejprve vyberete kolo a pak oblast.
+Nadřazení garanti také mohou importovat více oblastí najednou na stránce kola (v souboru
+pak musí být uveden i sloupec s kódem oblasti).
+
+<p>Kód školy najdete u školy v hierarchii míst (záložka „Místa“). Také si můžete stáhnout
+seznam všech škol ve formátu CSV a prohlížet si ho v Excelu (ten je v záložce „Org“).
+Náš seznam obsauhuje všechny školy z Rejstříku škol Ministerstva školství. Je ale možné,
+že v něm některé školy chybí. V takovém případě školu založte tlačítkem „Přidat nové podřízené
+místo“ na stránce obce. Kdyby chyběla i obec, založte ji stejným způsobem na stránce okresu.
+
+<p>Účastníkovi také můžete přidělit <b>soutěžní místo</b>, na kterém soutěží. Každé soutěžní
+místo pak může mít svůj <b>dozor</b> (viz popis rolí). Typické situace jsou tyto:
+
+	<ul>
+	<li><i>všichni soutěží na jednom místě</i> – tehdy se místo nevyplní, takže se
+		jako místo automaticky doplní oblast, kde se soutěž koná. Odevzdávat mohou
+		buď účastníci sami nebo garant oblasti nebo přidělený dozor.
+	<li><i>každý soutěží doma</i> – tehdy se také místo nevyplní, žadná dozorová role
+		se nepřiděluje a odevzdávají sami účastníci. Případně může zasáhnout garant.
+	<li><i>soutěží se na různých místech</i> – tehdy se vyplní konkrétní soutěžní místa
+		(to mohou být třeba školy, nebo si můžete založit speciální místo typu „soutěžní
+		místo“), těmto místům se přidělí dozorové role a odevzdávat mohou účstníci sami,
+		dozor, případně garant.
+	</ul>
+
+<p>Pokud importujete účastníka, který dosud neměl založen účet, účet se automaticky vytvoří
+a účastníkovi se pošle e-mail s odkazem na nastavení hesla.
+
+<h3>Dozor</h3>
+
+<p>Osoby vykonávající dozor na soutěžních místech jde také hromadně importovat.
+Funguje to podobně jako import účastníků, opět je k dispozici <a href='{{ url_for('doc_import_contest') }}'>popis formátu</a>.
+
+<p>Dozírajícím se automaticky založí organizátorské účty (pokud je ještě nemají) a přidělí
+se jim dozorová rola k příslušnému kolu a soutěžnímu místu.
+
+{% endblock %}
diff --git a/mo/web/templates/org_index.html b/mo/web/templates/org_index.html
index 2691932e..95375256 100644
--- a/mo/web/templates/org_index.html
+++ b/mo/web/templates/org_index.html
@@ -5,6 +5,7 @@
 <h3>Různé</h3>
 
 <ul>
+<li><a href='{{ url_for('doc_garant') }}'>Návod pro garanty</a>
 <li>Export všech škol: <a href='{{ url_for('org_export_skoly', format='csv') }}'>CSV</a>,
 	<a href='{{ url_for('org_export_skoly', format='tsv') }}'>TSV</a>
 </ul>
-- 
GitLab