MČR KT, KL - tvorba startovek pro finále dle výsledků kvalifikace
Zdarec,
tahle funkce by zase o trošku usnadnila práci pořadatelům mistrovství republiky na krátké i klasické trati. Startovka finálového závodu vychází z výsledků kvalifikace podle jasně daných pravidel. Bylo by potřeba, aby na základě vybraných výsledků uměl QE v novém závodě startovky sestavit.
Viz soutěžní řád - pro klasickou trať hlavně odstavce 1.11 a 1.12, pro krátkou trať 2.11 a 2.12, odkaz http://www.orientacnibeh.cz/upload/dokumenty/sekce-ob/sr-ob20.pdf.
Příklad výsledky kvalifikace: https://oris.orientacnisporty.cz/Vysledky?id=4307 Příklad startovka finále: https://oris.orientacnisporty.cz/Startovka?id=4306
Díky za reakce Cáš
Vypada to jednoduse, ale uplne tak jednoduche to neni ;) Navic se kdykoli muze stat, ze se zmeni pravidla a bude se muset menit kod.
Co by se mohlo udelat je, ze se vezme definovany pocet zavodniku z rozbehu + nasledujici se stejnym casem, a ti se posunou do finale. Nasledne si ale finalovou startovku budes muset zkontrolovat, zda tam neni nejaka minela.
Priznam se, ze v tomhle vam moc neporadim. Souhlasim s Kenou, ze dratovat to primo do QE nema cenu. Spis bych vymyslel nejaky postup, jak by to slo zvladnout pomoci sikovneho exportovani a importovani, to si myslim, ze by smysl melo, protoze by to slo pouzit i pro jine specialitky, nez je MCR
Je mi jasný, že to nebude "one button solution". Ideální by mi přišel import výsledků kvalifikace, nějaké základní seřazení - rozdělení závodníků do příslušných finále(na základě semifinálové kategorie, počtů a časů jak píše Keňa). Ve sloupcích by se mohly zobrazovat navíc informace z kvalifikace - čas, kategorie, umístění, podle kterých by bylo možné ručně zkontrolovat a upravit.
@fvacek co myslíš šikovným exportování a importováním? Jaké další spacialitky tě napadly?
co myslíš šikovným exportování a importováním? Jaké další spacialitky tě napadly?
Myslel jsem, ze by se dal z QE vyexportovat zavod podle nejakeho filtru, jako kat==H21 && place<=25 a tento fragment zavodu by se dal priimportovat do jineho zavodu (jestli to neni blbost). Takhle nejak bych si predstavoval, ze by bylo mozne sestavit finalovy zavod z rozebehu.
Co by mohlo jit relativne jednoduse, tak export ze semifinaloveho zavodu a import do finaloveho:
- v menu polozka "Export pro finale" a "Import ze semifinale" Export:
- Options dialog se vsemi kategoriemi ze semifinale (ty podkategorie pouze jako jedna, tedy nazev pro tisk) a pro kazdou textove pole; mozna i checkbox, zda chci tuto kategorii exportovat
- do textoveho pole by se vypisovali pocty postupujicich do jednotlivych finale; pokud tedy z rozbehu H21A postupuje 12 do A finale, 15 do B, 30 do C, zbytek do D, tak by se tam zadalo "12,15,30,999"
- pokud se kategorie nedeli, tak bud zadat "nic" nebo "999", nebo opet checkbox
- program by naplnil finalove skupiny podle poradi (pokud na poslednim postupovem miste jsou 2, tak postupuji oba)
- dale uz by to bylo na rozhodcim, at zkontroluje poradi
Ahoj, hele já jsem tohle s @lukaskett řešil a asi mi nedělá problém napsat nějaký python script který z výsledku kvaldy + nějaké meta specifikace udělá startovku. Takže jestli byste pak měli kde tento nástroj pouštět, tak rád pomůžu :) Jenom jem teda s quickeventem moc nikdy nepracoval, tak bych potřeboval uázku výstupu a vstupu (nejlépe asi csv, případně xmlko) co by to mělo schroustnout a vracet..
Chtelo by to nekde zalozit nejaky chat/forum, kde nebudeme zahlcovat toto issue - podle meho, to bude za chvili neprehledne.
Za mne idealne pouzit jako vstup vysledky kvalifikace ve formatu IOF XML 3 (tady staci pro testy vzit vysledky jakehokoli zavodu, kde ma alespon jedna kategorie nejakou podkategorii - H21A, H21B ...). Jako nasledny vstup pro startovku finale mame zatim jediny format a to je OB2000. Nemuzu ted nikde najit nejaky priklad, tak poprosim @fvacek nebo @arnost00 .
Příklad formátu pro import OB2000 je třeba tady #95
Pouzit pro import startovky vysledky v IOF-XML3 je skvelej napad :+1:
@xrust01
asi mi nedělá problém napsat nějaký python script který z výsledku kvaldy + nějaké meta specifikace udělá startovku.
museli bychom QE dodavat s pythonem, protoze windows. Rad bych se tomu vyhnul, uz jenom kvuli python knihovnam pouzitych ve skriptech, ktere bychom museli dodavat taky. Nasat to v C++ neni o tolik horsi, protoze staci opsate nektrey existujici import nebo export :)
@xrust01 odpovi, ale pocitam, ze by to byl mezikus "nekde volne dostupny", pripadne lokalne spusteny a s QE by nemel nic spolecneho - proste nezavisle losovatko. Ale jak jsem s nim mluvil, pokud napise obecne algoritmus, tak prepsat to do cehokoli uz nebude problem.
jestli to nebude soucast distribuce QE, tak je mi to jedno, jenom bacha na to, ze se o to stejne bude muset nekdo starat. QE se jeste vyviji, obcas jeste i v DB a tyto doprovodne skripty to budou muset reflektovat. Pokud to bude soucast QE, bude to mnohem jednodussi. Pokud by to bez skriptovani neslo, Qt umoznuji skriptovat v JS, ale znovu opakuji, moje zkusenost je, ze v c++ to nakonec jde stejne lip, kdyz se podivate do gitu, uvidite kolik skriptu jsem z JS prepsal do c++, protoze jsem potreboval, aby to opravdu rychle a hlavne spolehlive fungovalo. Prekladac obvykle najde spoustu chyb, ktere netypovany jazyk zjisti az za runtime.
@fvacek @xkenia presně, moje původní idea byla to udělat jen pro naší mčr klasika, s c++ neumím, takže tam by to asi moc bolelo, takže spíš bych vymyslel nějakej algoritmus, ten napsal a otestoval v pythonu a pak by se to dalo určitě přepsat, nemám problém to pak poskytnout.
Jinak ten formát startovky je nějaký podivný.. takže tam spíš asi vidím output že by byl jenom dataframe kategorie, čas startu a id závodníka. S tím že pak by se tohle upravilo už tam kde by se to implementovalo..
A pokud nám Babiš udělá karanténu, tak se do toho možná pustim spíš dřív než později.. :D
pokud uděláš něco v pythonu, o to jednoduší to pak bude připadně napsat i v c++ :wink: hodně bych se přimluvil, aby byl vstup i výstup (také) v IOF XML, přecijenom je to standard (i když QE ho zatím importovat neumí, tak lepší pak psát jeden import, než pro každý pseudoformát navíc)
https://github.com/international-orienteering-federation/datastandard-v3/blob/master/IOF.xsd
tento soubor popisuje iof standard pomocí xsd souboru, je to spíš taková kuchařka, kde jaký prvek může být a jaké může mít hodnoty, výsledné XML se pomocí tohoto souboru dá např. validovat.
https://github.com/international-orienteering-federation/datastandard-v3/tree/master/examples tady pak jsou už ukázky skutečných souborů, i startovek
Hele, podle čeho se z těch výsledků dá zjistit, že má závodník českou registračku? Nebo spíš proč třeba @otahirs tam má místo registračky pseudokód 02S98AA.. popřípadě kdybyste věděli přímo o výsledkách nějaké kvaldy v tomhle formátu, tak by to trochu pomohlo :) Díky
xml výše není z českých závodů, tedy 02S98AA je nějaké jejích psedoregistračka
jakékoliv výsledky se dají z orisu stáhnout https://oris.orientacnisporty.cz/ExportVysledkuXML&v=3?id={ORIS ID závodu}
např. kvalifikace z loňské klasiky: https://oris.orientacnisporty.cz/ExportVysledkuXML&v=3?id=4307
pokud se v tom chceš vyznat, doporučuji prohnat přes nějaký formater, např https://www.freeformatter.com/xml-formatter.html
dík, tohle bodne :) co jsem na to koukal tak to jsou asi nějaký slovenský závody.. :)
Hele, tak jsem to nějak zpatlal a docela to jede.. co s tim teď dál, tady to je kdyby jste se chteli mrknout, je to asi 400 radku kodu, takze da se, citelnost prosim posudte sami :)
jinak co jsem koukal tak minimálně ta klasika v Jablonci tam moc nerespektovali ty směrnice pro cizince, nebo jestli to mezitím změnili..? :) Jako ti cizinci to je teda jinak teda voser s nima :D
Zdar, byla vytvorena utilitka, ktera umi vzit vysledky ze semifinale a podle konfigurace pripravit startovku pro finale. Je online, vytvorena v Javascriptu, takze se da stahnout, upravit zdrojak a lokalne si pustit.
https://semi2final.kear.cz/
Aktualne probehli 2 testovaci a jeden ostry zavod (MCR KT 2024), kdy to pouzil clovek, ktery o tom nic nevedel ;)
PS 11.6.2024: jeste musim udelat zmenu v hostingu, at ma certifikat :(
Vyzkoušel jsem na datech z víkendového MČR exportovaných z Orisu (dokonce je tam případ stejného času na postupové pozici) a super, díky.
Do postupu bych jen doplnil, že po nastavení intervalu a upravení startu prvního závodníka (sloupec Start) je potřeba ještě provést losování se zachováním pořadí závodníků. Jen pro úplnost ;)
Potvrzuji, Javascript od Keni jsme úspěšně použili na víkendovém MČR na krátké. Rozřazení nám udělal perfektně.
Pak ale samozřejmě následovala ruční práce s čipy, startovními čísly a časy, které jsem importoval do QE jako csv soubory. Losování se Zachováním pořadí závodníků mi bohužel nefungovalo správně a pořadí rozházelo.
Díky!
https://github.com/Quick-Event/quickbox/issues/978