Skip to content
Snippets Groups Projects

WIP: Zárodek uživatelské části webu a submitování

Closed Martin Mareš requested to merge devel into master
2 unresolved threads

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
mo/submit.py 0 → 100644
25
26 try:
27 self._do_submit(paper, tmpfile)
28 duration = (datetime.datetime.now() - t_start).total_seconds()
29 logger.info(f'Submit: Hotovo: file={paper.file_name} pages={paper.pages} bytes={paper.bytes} time={duration:.3f}')
30 except SubmitException as e:
31 duration = (datetime.datetime.now() - t_start).total_seconds()
32 logger.info(f'Submit: Chyba: {e} (time={duration:.3f})')
33 raise
34
35 def _create_file_name(self, paper: db.Paper) -> str:
36 user_dir = os.path.join(str(paper.task.round.year), str(paper.for_user_obj.user_id))
37 sub_user_dir = os.path.join(self.submit_dir, user_dir)
38 os.makedirs(sub_user_dir, exist_ok=True)
39
40 secure_task_code = werkzeug.utils.secure_filename(paper.task.code)
  • Nechceme do názvu souboru kódovat aspoň i kategorii? Sice se teď při kolizi jmen vyrábí náhodný suffix a navíc teď jsou kategorie typicky v kódech úloh, ale v obecnosti to platit nemusí.

  • Já váhal, přišlo mi, že kód úlohy stačí, neb by měl být v ročníku unikátní.

    Spíš přemýšlím, jestli nepřidat ještě jednu úroveň hierarchie adresářů, ve které bude kategorie a kolo ... nebo možná na té první úrovni do jména adresáře zakódovat ročník, kategorii i pořadí kola.

  • Please register or sign in to reply
  • 456 367 )
    457 368
    458 369
    370 @app.route('/org/contest/c/<int:id>/reseni')
    371 def org_contest_solutions(id: int):
    372 # FIXME: Práva?
    373 # FIXME: Hlavička stránky podle Jirkova předělání
    374 contest, rr = get_contest_rr(id, mo.rights.Right.manage_contest)
  • Martin Mareš added 2 commits

    added 2 commits

    • dfb802c2 - 1 commit from branch master
    • 3f85e030 - Merge remote-tracking branch 'origin/master' into devel

    Compare with previous version

  • added 1 commit

    • 105913d5 - Login: Oprava chyby s přesměrováním po přihlášení

    Compare with previous version

  • added 1 commit

    • 4e17e571 - Zlepšení UX resetování hesla

    Compare with previous version

  • added 1 commit

    • a698b722 - Reset hesla: Po resetování uživatele rovnou přihlásíme

    Compare with previous version

  • added 1 commit

    • b2dc4522 - Org round: Přidáno scházející coerce

    Compare with previous version

  • Martin Mareš added 4 commits

    added 4 commits

    • 268bd6bc - org_contest: Right a Rights importujeme
    • aea495d9 - org_users: Opravena chyba ve vyvolávání výjimky
    • 0f9b4979 - Kosmetika
    • 35314b1a - Zárodek org_submit_list() a košatá kontrola práv

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    • d55b49af - Opravy vyhodnocování práv k řešením

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    • e6dca6a3 - Endpointy pro zobrazování odevzdaných řešení.

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    • f750836a - Další endpointy pro řešení

    Compare with previous version

  • Jiří Setnička added 6 commits

    added 6 commits

    • 45014c19 - Zavedení globálního mo.now pro kešování času
    • 2742e071 - DB: Přesunutí task_statement_available jako metodu db.Round
    • a142afd7 - Pomocné formátovací funkce v mo.util_format a jejich registrace jako jinja filtery
    • 9a7b12e9 - DB: Pomocné funkce pro kontrolu stavu a vypisování db.Round
    • ad8dc435 - Účastnická část webu - ukazujeme kola a úlohy ve všech stádiích
    • e8fbdb2f - Rounds: tasks_file je NULL když není

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    • c9956d4e - Přehled odevzdaných řešení a feedbacků účastníka + jejich stahování

    Compare with previous version

  • Martin Mareš added 2 commits

    added 2 commits

    • 4d8e68d4 - Zapomenutá šablona pro předchozí commit
    • b36c20c3 - Stahovaná řešení mají jméno v URL

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    • 7ac9bfea - util_format: Oprava překlepu

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    • ae1503ae - Zvýrazňování řešení odevzdaných po deadline

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    • 7614a61e - Zvýrazňování řešení odevzdaných po deadline

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    • 765ffd35 - Orgové už mohou odevzdávat řešení i opravení

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    Compare with previous version

  • Jiří Setnička added 8 commits

    added 8 commits

    • 0528462e - Předělání get_solution_context tak, aby i user_id bylo nepovinné
    • 1618bd50 - Org stránka s odevzdanými úlohami v soutěži
    • bb5d9136 - Org stránky soutěže, výpisu účastníků a tabulky řešení zdvojeny i pro konkrétní soutěžní místo
    • 2a3c4d95 - Submit list: Odkaz na stránku místa a sjednocení "drobečkového" nadpisu
    • 89287a9d - Tabulka všech řešení pro kolo i soutěžní místo
    • 6cc36961 - CSS: Stylování vzhledu tabulek .data
    • d237384f - Org contest: Placeholdery pro odkazy na hromadné nahrávání řešení a zadávání bodů
    • e077e427 - Org contest: Přidáno počítání počtu odevzdaných řešení

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    • 2fe7db9f - Dovolujeme za finální prohlásit jiný než nejnovější submit

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    • 318bef11 - DB: Zárodek upgradovacího skriptu

    Compare with previous version

  • Martin Mareš added 2 commits

    added 2 commits

    • 53582185 - DB upgrade: Nezapomenout na SET ROLE
    • 284fbfc7 - DB: Upgrade mezi aktuálním masterem a devel

    Compare with previous version

  • Martin Mareš added 2 commits

    added 2 commits

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    Compare with previous version

  • Martin Mareš added 12 commits

    added 12 commits

    • ff468bb5 - Inicializační funkce pro samostatné programy a funkce get_now()
    • c75139ba - DB: Tabulka pro asynchronní úlohy
    • 4a1190fe - mo.db: Úklid v importech
    • d33c3c91 - Společná infrastruktura pro asynchronní joby
    • e913aeae - Spouštění jobů pomocí uwsgi mules
    • 791b8b87 - Zavedeno mo.data_dir()
    • e5428c5c - Flask potřebuje absolutní cesty k souborům
    • e66a4dbf - Job pro stahování řešení
    • 326491c2 - Triviální skript na spuštění všech jobů
    • b1a4234a - UI k jobům
    • 47c8afe2 - Stránka s dávkami přidána do menu
    • 07d3b23c - Odkaz na stažení všech řešení

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    • 3d53b2c9 - DB: Upgrade zakládá tabulku jobs

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    Compare with previous version

  • Martin Mareš added 2 commits

    added 2 commits

    • 851cf0cb - Jobs: Oprava chybu
    • 3c704983 - Jobs: Drobnosti ve formulacích textů

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    • fef6c036 - Jobs: Časové parametry jobů jsou nastavitelné

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    • a7305d14 - Jobs: Dávka se stahuje s Content-Disposition: attachment a jménem

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    • 7c106e92 - Logování: Snad už bez duplicit

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    • bee33ba5 - Logování: Ještě jednou...

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    • ea14afa2 - Mezi kódem a názvem úlohy pišme dvojtečku

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    • a09b8eab - Opraven výpis úloh dostupných účastníkovi

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    • b7137b52 - org_contest_solutions využívá ke kontrole práv get_soulutions_context

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    • 58bcb31b - "Tabulka řešení" -> "Odevzdaná řešení"

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    • d7e1b326 - Dozor nemá právo "add_users"

    Compare with previous version

  • Martin Mareš added 1 commit

    added 1 commit

    • 2481d477 - Z přehledu řešení úlohy jde i odevzdávat

    Compare with previous version

  • added 1 commit

    • ac706593 - Políčka s termíny úloh jako normální inputy

    Compare with previous version

  • Martin Mareš added 1 commit
  • Martin Mareš added 1 commit

    added 1 commit

    • 9bf70cfc - Další pokračování ságy o logování

    Compare with previous version

  • Jiří Setnička added 2 commits

    added 2 commits

    • 78ee2124 - Správné počítání odevzdaných řešení u soutěže
    • 5e7f4d88 - Počítadla řešení také na stránce kola u výpisu úloh

    Compare with previous version

  • closed

  • Please register or sign in to reply
    Loading