Stav "opraveno"
Implementace stavu "opraveno", kdy účastníci vidí opravené úlohy a oficiální výsledkovku a mají možnost protestovat, než se soutěž úplně uzavře.
Closes issue #217 (closed).
Merge request reports
Activity
changed milestone to %Podzim
added feature label
TODO: Update dokumentace pro organizátory.Edited by Martin Mareš- Resolved by Jiří Setnička
- Resolved by Jiří Setnička
Grepnul jsem si, kde se používá
RoundState.closed
a zároveň na stejném místě nenígraded
:jirka@pathfinder:~/projects/mo-submit/mo$ grep -rI RoundState.closed | grep -v graded web/templates/org_contest_solutions.html:{% if contest.state in [RoundState.grading, RoundState.closed] %} web/templates/org_contest_task.html: {% if ctx.contest.state in [RoundState.grading, RoundState.closed] %} web/templates/org_contest.html: {% if state != RoundState.closed and round.seq > 1 %} web/org_contest.py: if any(pc.state != db.RoundState.closed for pc in prev_contests): db.py: RoundState.closed: 'ukončeno', rights.py: return self._get_state() not in [db.RoundState.preparing, db.RoundState.closed]
Myslím si, že v těch prvních dvou případech (
org_contest_solutions.html
aorg_contest_task.html
) by mělo býtgraded
taky.Další dva výsledky jsou z postupu z minulého kola. Všiml jsem si, že v samotné funkci
org_contest_advance()
se nekontroluje v jakém stavu je současné kolo, jenom právomanage_contest
. To asi není správně. A nejsem si úplně jistý, v jakých stavech vlastně postup z minulého kola povolovat (mimo stavuclosed
, kdy už je jasné, že ne).To poslední je uvnitř
_is_active()
kde je to správně. A zároveň je to asi jediné použitíclosed
, kde nepřibylo igraded
. A naopak míst, na které bylo potřeba dopsatgraded
, je až překvapivě veliký a svádí to k chybám v budoucnu. Přemýšlím, jestli by nešlo zavést jasné uspořádání kroků (připravuje se -> běží -> opravuje se -> opraveno -> ukončeno) a na většině míst jenom nekontrolovat, že stav je alespoň X nebo naopak stav je menší než YEdited by Jiří Setnička
- Resolved by Jiří Setnička
475 469 ) 476 470 477 471 sess.commit() 478 flash('Změny kola uloženy', 'success') 472 flash('Změny kola uloženy.', 'success') 473 474 if 'state' in changes and round.state == db.RoundState.graded: Ok, pořád mi to přijde jako podivné chování (upozorníme soutěžícího na dostupnost řešení jenom tehdy, když může protestovat, jinak na jeho dostupnost neupozorňujeme), ale pokud to tak chtějí garanti, tak pak ok
Možná bych se zamyslel, jestli by spíše nedávalo smysl zaškrtávátko někde v blízkosti selectu na stavy "[x] zároveň odeslat upozornění soutěžícím (jen při přepínání do opraveno nebo ukončeno, při opětovném přepnutí se emaily znovu nepošlou)"
Nejradši bych z toho udělal obecný notifikační mechanismus, který si bude umět zjistit, co má účastník k dispozici (opravený protokol, body, komentáře opravovatelů, výsledkovku), a podle toho sestaví mail.
Ale zatím by to fungovalo od okresních kol dál. V těch dřívějších se OSMO zatím používá dost ošizeně a nejspíš by ty notifikace nedávaly smysl.
Tak bych pro teď zůstal u notifikací jen ve stavu "opraveno" a s obecným textem. Časem to rozmyslíme znovu podle toho, jak organizátoři OSMO budou používat.
- Resolved by Jiří Setnička
Pročetl jsem současný stav. Část s odesílaním notifikací mi přijde dobrá, tam mám jen návrh s přidáním adresy do emailu.
Myšlenka zavedení stavu
graded
se mi líbí, ale jak jsem psal v předchozím komentáři, tak by se mi líbilo vymyslet, jak nemuset na všechny stavy myslet při psaní každé podmínky, kde se stavy používají.added 26 commits
-
f3c07a87...e3412b9a - 9 commits from branch
devel
- fb6350e5 - Korektury: email -> e-mail
- b07bcd3d - Joby: I po interní chybě se smí udělat retry
- f416b9a4 - Menu: Hlavní položka v účastnickém rozhraní přejmenována na "Soutěž"
- d936bafa - DB: Otypování MOEnum
- 560eaad5 - Při odesílání e-mailu logujeme i user ID
- 7192921a - Řetězce není dobré porovnávat pomocí "is"
- 02e5cb2c - DB: Zaveden nový stav kola "opraveno"
- fd55371c - CSS: Barva pro stav "opraveno"
- 2b05112e - Opraveno: Práva
- 6a4983a6 - Opraveno: Orgovské rozhraní
- 9830a038 - Opraveno: Účastnické rozhraní
- e2874fdc - Předělána kontrola parametrů v editaci kola a soutěže
- 8d6425d3 - DB: Nový typ jobu send_grading_info
- 02dda3e3 - DB: Nová tabulka odeslaných e-mailů
- f04f5643 - Job na odesílání e-mailů o opravených úlohách
- 4933459f - Doc: Popis stavů
- d008b7eb - Přepínače stavů odkazují na návod
Toggle commit list-
f3c07a87...e3412b9a - 9 commits from branch
mentioned in issue #217 (closed)
- Resolved by Martin Mareš
- Resolved by Martin Mareš
added 1 commit
- ea605748 - Návod pro orgy: Lepší vysvětlení stavu "běží"
added 20 commits
-
6b15939c...8b6cbfb8 - 3 commits from branch
devel
- d8a9521e - Korektury: email -> e-mail
- 43cca768 - Joby: I po interní chybě se smí udělat retry
- 97f90ea9 - Menu: Hlavní položka v účastnickém rozhraní přejmenována na "Soutěž"
- 063f7d49 - DB: Otypování MOEnum
- 86cdaa73 - Při odesílání e-mailu logujeme i user ID
- 9e8783a0 - Řetězce není dobré porovnávat pomocí "is"
- fda651c2 - DB: Zaveden nový stav kola "opraveno"
- 2b7b2f51 - CSS: Barva pro stav "opraveno"
- 2592de23 - Opraveno: Práva
- a9f21c49 - Opraveno: Orgovské rozhraní
- 99866dc0 - Fix: Informace o stavu graded pro účastníky
- 99dbda83 - Předělána kontrola parametrů v editaci kola a soutěže
- 8f10d278 - DB: Nový typ jobu send_grading_info
- 3c90b9a4 - DB: Nová tabulka odeslaných e-mailů
- dce2e8b2 - Job na odesílání e-mailů o opravených úlohách
- a8b664ff - Doc: Popis stavů
- fa882ea0 - Přepínače stavů odkazují na návod
Toggle commit list-
6b15939c...8b6cbfb8 - 3 commits from branch