Odevzdávací Systém MO merge requestshttps://gitlab.kam.mff.cuni.cz/mj/mo-submit/-/merge_requests2023-09-06T21:08:45+02:00https://gitlab.kam.mff.cuni.cz/mj/mo-submit/-/merge_requests/135Responzivní design - základy2023-09-06T21:08:45+02:00Jiří SetničkaResponzivní design - základyHlavně nastavení viewportu a pak hamburger menu na úzkých displejích.
Hranici jsem zvolil na 600px, což by snad mělo fungovat docela rozumně. Na mobilech, co mám v okolí, to funguje dobře.Hlavně nastavení viewportu a pak hamburger menu na úzkých displejích.
Hranici jsem zvolil na 600px, což by snad mělo fungovat docela rozumně. Na mobilech, co mám v okolí, to funguje dobře.Jiří SetničkaJiří Setničkahttps://gitlab.kam.mff.cuni.cz/mj/mo-submit/-/merge_requests/134Prázdné protokoly2023-08-28T23:05:13+02:00Martin Marešmj@ucw.czPrázdné protokolyImplementace #277: protokol je místo obodování možné prohlásit za prázdný.
Prázdná řešení mají vždy 0 bodů, ale je u nich nastaven speciální flag. Ve výpisu řešení je označujeme symbolem prázdné množiny, ve výsledkovkách se chovají stej...Implementace #277: protokol je místo obodování možné prohlásit za prázdný.
Prázdná řešení mají vždy 0 bodů, ale je u nich nastaven speciální flag. Ve výpisu řešení je označujeme symbolem prázdné množiny, ve výsledkovkách se chovají stejně jako neodevzdaná řešení.
Také jsem doplnil editaci bodů spolu se zakládáním řešení i do přehledové stránky řešení všech úloh v soutěži.
A nakonec jsem sjednotil implementace editace bodů a zakládání řešení (všechna řešení v soutěži, všechna řešení úlohy, detail řešení, import bodů), aby používaly společný back-end.
Mergenu to, aby mohl Tomáš testovat, ale i tak budu rád, když se na to podíváte.Podzim 2023https://gitlab.kam.mff.cuni.cz/mj/mo-submit/-/merge_requests/133Zvětšení políčka "Hodnotil" v protokolech2023-02-06T13:40:59+01:00Jiří KalvodaZvětšení políčka "Hodnotil" v protokolechKdyž úlohu opravují dva lidi, tak je těžké se vmáčknout do kolonky na
podpis, zatímco vedle v počtu listů je spousta prostoru.Když úlohu opravují dva lidi, tak je těžké se vmáčknout do kolonky na
podpis, zatímco vedle v počtu listů je spousta prostoru.https://gitlab.kam.mff.cuni.cz/mj/mo-submit/-/merge_requests/132Odebrání odkazu vedoucího na editaci úlohy2023-01-20T14:43:45+01:00Jiří KalvodaOdebrání odkazu vedoucího na editaci úlohyBodování/stahování/... úlohy pro celé kolo nebude mít odkaz na editaci
dané úlohy v horní liště, protože to bylo moc matoucí.
Closes #328Bodování/stahování/... úlohy pro celé kolo nebude mít odkaz na editaci
dané úlohy v horní liště, protože to bylo moc matoucí.
Closes #328https://gitlab.kam.mff.cuni.cz/mj/mo-submit/-/merge_requests/131Bugfix nadpisu při editaci úlohy2023-01-20T12:54:29+01:00Jiří KalvodaBugfix nadpisu při editaci úlohyCloses #328Closes #328https://gitlab.kam.mff.cuni.cz/mj/mo-submit/-/merge_requests/130Přísnější kontroly mailových adres2023-01-15T13:54:46+01:00Martin Marešmj@ucw.czPřísnější kontroly mailových adresZavedeny přísnější kontroly mailových adres podle Issue #308.Zavedeny přísnější kontroly mailových adres podle Issue #308.https://gitlab.kam.mff.cuni.cz/mj/mo-submit/-/merge_requests/129Bezpečné transakce při zakládání uživatelů/účastníků/účastí2023-01-14T20:37:35+01:00Martin Marešmj@ucw.czBezpečné transakce při zakládání uživatelů/účastníků/účastíCloses #314:
Pokud organizátor odešle POST na přidání nového účastníka soutěže
dvakrát rychle po sobě (třeba kvůli nějakému automatickému retry
po rozpadu spojení), dvě různé DB transakce se snaží založit uživatele
se stejným loginem. J...Closes #314:
Pokud organizátor odešle POST na přidání nového účastníka soutěže
dvakrát rychle po sobě (třeba kvůli nějakému automatickému retry
po rozpadu spojení), dvě různé DB transakce se snaží založit uživatele
se stejným loginem. Jedna z nich selže na unikátnosti sloupce email.
V defaultní úrovni izolace transakcí (READ COMMITTED) to nemá žádné
hezké řešení. Nepomůže SELECT ... FOR UPDATE, jelikož ten zamyká pouze
nalezené řádky, nikoliv neexistenci dalších řádků vyhovujících podmínce.
Co by se dalo dělat:
(1) Zvýšit úroveň izolace aspoň na READ REPEATABLE. To vyřeší problém,
ale současně může začít víceméně jakákoliv zapisující transakce
failovat. Vyžadovalo by dopsat retry do prakticky všech míst v OSMO,
kde je nějaký commit.
(2) Retryovat specificky transakce na zakládání užívatelů (a účastí apod.).
Tohle nejde snadno, jelikoz jsou i součástí dlouho běžících transakcí
v importech (zatím jsme se snažíli, aby byl celý import atomický
a v případě selhání se celý rollbackoval). To by možná mohly vyřešit
subtransakce.
(3) Zamykat celou tabulku s uživateli, než na ní provedeme první SELECT.
To by asi vyřešilo problém, ale byl by potřeba zápisový zámek, takže
by paralelně nemohla běžet žádná čtení. A také by se to potenciálně
mohlo deadlockovat (potřebujeme v jedné transakci postupně lock na
uživatele, účastníky a účasti a locky platí až do konce transakce).
(4) Používat INSERT ... ON CONFLICT <něco>. To vypadá bezpečně, jen to není
moc pohodlné, zejména proto, že s tím nepočítá ORM, takže je potřeba
dělat všechno ručně.
Zatím jsem zvolil (4), protože mi přijde, že to změny udržuje lokální
a funguje i s dlouhými transakcemi při importu. Výhledově bych se ale
chtěl zamyslet nad tím, jak takové věci řešit co nejuniverzálněji
a nejpohodlněji.https://gitlab.kam.mff.cuni.cz/mj/mo-submit/-/merge_requests/128Místa: hledání a další drobná vylepšení2022-11-13T13:46:28+01:00Martin Marešmj@ucw.czMísta: hledání a další drobná vylepšeníhttps://gitlab.kam.mff.cuni.cz/mj/mo-submit/-/merge_requests/127E-maily školních garantů účastníků2022-11-12T14:42:02+01:00Martin Marešmj@ucw.czE-maily školních garantů účastníkůImplementace #283 a #271, poslední chybějící akce z Průvodce garanta.Implementace #283 a #271, poslední chybějící akce z Průvodce garanta.https://gitlab.kam.mff.cuni.cz/mj/mo-submit/-/merge_requests/125Průvodce soutěží pro garanty2022-11-11T18:48:16+01:00Martin Marešmj@ucw.czPrůvodce soutěží pro garantyZačínající garanti často zabloudí v houštině featur Osma. Zkusil jsem spáchat dynamickou nápovědu, která podle stavu soutěže ukazuje, co zrovna mají dělat. Také jsem přidal zkratky na některé důležité akce.
Viz též issue #276.Začínající garanti často zabloudí v houštině featur Osma. Zkusil jsem spáchat dynamickou nápovědu, která podle stavu soutěže ukazuje, co zrovna mají dělat. Také jsem přidal zkratky na některé důležité akce.
Viz též issue #276.Podzim 2022https://gitlab.kam.mff.cuni.cz/mj/mo-submit/-/merge_requests/126Vylepšení skenování - prázdné stránky, otáčení, vylepšení UI2022-11-07T17:12:30+01:00Jiří SetničkaVylepšení skenování - prázdné stránky, otáčení, vylepšení UIPodle #279.
Několik vylepšení týkajících se skenování:
* Zaveden explicitní `state` namísto zneužívání `seq_id` pro stav rozpoznání skenované stránky
* Autodetekujeme prázdné stránky podle entropie a označujeme je za "pravděpodobně práz...Podle #279.
Několik vylepšení týkajících se skenování:
* Zaveden explicitní `state` namísto zneužívání `seq_id` pro stav rozpoznání skenované stránky
* Autodetekujeme prázdné stránky podle entropie a označujeme je za "pravděpodobně prázdné" (frontend zobrazuje varování, přes které lze pokračovat, nebo lze označit autodetekci za korektní a zbavit se tak varování)
* Umožňujeme prohlásit sken za oboustranný a pak autodetekujeme neprázdné sudé stránky jako pokračovací
* Frontend umožňuje otáčet stránky (s pěknou CSS animací :)), a zároveň zpracování skenů podle toho pootáčí stránky v PDFku
* Při úvodním zpracování detekujeme rotaci podle rotace QR kódu
* Při prohlížení preloadujeme malý počet skenů (3 na každou stranu)
* v UI lépe zobrazujeme, co se stránkou je (k podbarvení řádků se přidala i ikonka)Jiří SetničkaJiří Setničkahttps://gitlab.kam.mff.cuni.cz/mj/mo-submit/-/merge_requests/124Zjednodušení práce s joby2022-10-17T14:38:02+02:00Jiří SetničkaZjednodušení práce s jobyObsahuje:
* #294 - joby s vyšší a nižší prioritou, dva mule workery
* #289 - zavedení vyčkávají stránka u jobů a lepší určování, kam přesměrovat po zpracování jobuObsahuje:
* #294 - joby s vyšší a nižší prioritou, dva mule workery
* #289 - zavedení vyčkávají stránka u jobů a lepší určování, kam přesměrovat po zpracování jobuJiří SetničkaJiří Setničkahttps://gitlab.kam.mff.cuni.cz/mj/mo-submit/-/merge_requests/123Zakládání soutěží z orgovské hlavní stránky2022-09-11T12:42:31+02:00Martin Marešmj@ucw.czZakládání soutěží z orgovské hlavní stránkyZvládá běžné situace, které potká garant nižší úrovně.
Staví na `mj/bugfixes`.Zvládá běžné situace, které potká garant nižší úrovně.
Staví na `mj/bugfixes`.https://gitlab.kam.mff.cuni.cz/mj/mo-submit/-/merge_requests/122Různé drobné opravy2022-09-11T12:41:14+02:00Martin Marešmj@ucw.czRůzné drobné opravyNalezené testovacím prostředím z `mj/testing`.Nalezené testovacím prostředím z `mj/testing`.https://gitlab.kam.mff.cuni.cz/mj/mo-submit/-/merge_requests/121Testovací prostředí2022-09-11T12:40:51+02:00Martin Marešmj@ucw.czTestovací prostředíNapsal jsem skripty, které založí jednoduché testovací prostředí se soutěžemi, uživateli a rolemi, na kterých lze testovat, jak se OSMO jeví různým druhům uživatelů v různých stavech soutěží.Napsal jsem skripty, které založí jednoduché testovací prostředí se soutěžemi, uživateli a rolemi, na kterých lze testovat, jak se OSMO jeví různým druhům uživatelů v různých stavech soutěží.https://gitlab.kam.mff.cuni.cz/mj/mo-submit/-/merge_requests/119Práva k soutěžím a soutěžním místům2022-09-05T20:19:08+02:00Martin Marešmj@ucw.czPráva k soutěžím a soutěžním místůmSystém práv k soutěžím a místům byl značně spletitý a podle `<mj+md-20220126.101642.90573.nikam@ucw.cz>` také děravý.
Toto je pokus o nápravu.Systém práv k soutěžím a místům byl značně spletitý a podle `<mj+md-20220126.101642.90573.nikam@ucw.cz>` také děravý.
Toto je pokus o nápravu.Podzim 2022https://gitlab.kam.mff.cuni.cz/mj/mo-submit/-/merge_requests/120Mailové upozornění na interní chyby2022-09-04T18:22:14+02:00Martin Marešmj@ucw.czMailové upozornění na interní chybyCloses #248, #270.Closes #248, #270.Podzim 2022https://gitlab.kam.mff.cuni.cz/mj/mo-submit/-/merge_requests/118Sazba výsledkovek TeXem2022-08-22T14:29:55+02:00Martin Marešmj@ucw.czSazba výsledkovek TeXemVše okolo sazby výsledkovek.
Speciality typu "ve výsledkovce celostátka uvádíme místo a čas konání" se zatím řeší pomocí hacků.Vše okolo sazby výsledkovek.
Speciality typu "ve výsledkovce celostátka uvádíme místo a čas konání" se zatím řeší pomocí hacků.Podzim 2022https://gitlab.kam.mff.cuni.cz/mj/mo-submit/-/merge_requests/117Publikace výsledkovky na web MO2022-07-19T16:14:35+02:00Jiří KalvodaPublikace výsledkovky na web MOJiří KalvodaJiří Kalvodahttps://gitlab.kam.mff.cuni.cz/mj/mo-submit/-/merge_requests/116Implementováno filtrování dle jména a příjmení současně2022-03-26T22:08:06+01:00Jiří KalvodaImplementováno filtrování dle jména a příjmení současně