Skip to content
Snippets Groups Projects

Stav "opraveno"

Merged Martin Mareš requested to merge mj-opraveno into devel

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).

Edited by Martin Mareš

Merge request reports

Approval is optional

Merged by Martin MarešMartin Mareš 3 years ago (Jan 19, 2022 9:21pm UTC)

Merge details

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
    • 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 a org_contest_task.html) by mělo být graded 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ávo manage_contest. To asi není správně. A nejsem si úplně jistý, v jakých stavech vlastně postup z minulého kola povolovat (mimo stavu closed, 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 i graded. A naopak míst, na které bylo potřeba dopsat graded, 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ž Y :thinking:

      Edited 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:
    • Co když se ze stavu "běží" přejde rovnou do "ukončeno", neměly by se emaily rozeslat taky?

    • Tohle je úmyslné: v některých kolech (domácí, v Z-kách asi i školní) se opravené protokoly nenahrávají do OSMO. Maximálně se vyplňují body, někdy ani to ne. Tam nedává smysl rozesílat maily, což si představuji udělat přechodem z grading rovnou do closed.

    • 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 :smile:

      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.

    • Please register or sign in to reply
  • 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í.

  • Martin Mareš added 1 commit

    added 1 commit

    • f3c07a87 - Fix: stav graded v orgovských šablonách

    Compare with previous version

  • Martin Mareš added 26 commits

    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

    Compare with previous version

  • Martin Mareš marked this merge request as ready

    marked this merge request as ready

  • Zapracoval jsem všechny připomínky. Zejména už stav "opraveno" funguje i pro jednotlivé soutěže.

  • Martin Mareš changed the description

    changed the description

  • mentioned in issue #217 (closed)

  • Jiří Setnička
  • Jiří Setnička
  • Martin Mareš added 1 commit

    added 1 commit

    • ea605748 - Návod pro orgy: Lepší vysvětlení stavu "běží"

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    • 6b15939c - Fix: Informace o stavu graded pro účastníky

    Compare with previous version

  • Martin Mareš added 20 commits

    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

    Compare with previous version

  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Please register or sign in to reply
    Loading