Quick-Event / quickbox

Quick Event - Orienteering Software
GNU General Public License v2.0
53 stars 41 forks source link

Losování dle požadavku na startovní čas #749

Open lukaskett opened 2 years ago

lukaskett commented 2 years ago

Vyhovět požadavkům na startovní časy je vždy vůle toho, kdo startovku losuje. Jsme rodinný sport a tak požadavky na rozdílné starty rodičů jsou celkem běžné a nebylo by špatné umět je automatizovat. My v Kamenici se osobně snažíme všem požadavkům vyhovět (nejen těm kvůli hlídání dětí) pokud je to alespoň trošku možné a není to úplná hovadina. Přesouvání často zabere pár jednotek hodin.

Turnovští pořadatelé přišli letos s výměnným formátem požadavků na start :) Více info zde.

Rozlišují 4 typy požadavků:

Myslím, že implementování něčeho podobného by nám všem mohlo ušetřit kupu času. Samozřejmě je potřeba zachovat možnost požadavek do losování nezahrnout. Uvidíme jakou zpětnou vazbu budou mít pořadatelé Pěkných Prázdnin po konci závodů.

paukert commented 2 years ago

Skoro úplně stejný požadavek již dokonce evidujeme - https://github.com/Quick-Event/quickbox/issues/149, jen se na něj ještě nedostalo :/

fvacek commented 2 years ago

brzy a pozde je v pohode,

ruzny a podobne je podle me problem, nenapada me moc, jak to jednoduse naimplementovat, napriklad nejde nalosovat kategorii A a potom B, pokud ruzne nebo podobne startuji v A a v B. Takze pokud by ttoto melo fungovat, musely by se A i B losovat spolecne. Samozrejmem, se to par rozleze i do kategorii C a D.

Jinymi slovy, pokud chceme toto naimplementovat, pujde to jedine volbou nalosovat vse

Dalsi moznost je udelat nejaky tool, ktery by vyrazne zjednodusil rucni rozhoz startu. Ze by slo trba rychle prenout do kategorie zavisleho zavodnika a zkontrolovat, jestli je constrain splnen nebo ne.

janpalas commented 6 months ago

Byť mám ke zpracování požadavků velmi podobný přístup jako @lukaskett, tak si myslím, že je to věc, kterou nelze dobře automatizovat. Její implementace bude drahá a stejně nebude stoprocentní (věci níže vychází ze zkušeností, nejsou to hypotetické stavy):

  1. Někteří lidé, kteří chtějí po závodě absolvovat ještě HDR, tak si napíšou "brzo". Jenže co když kategorie startuje např. od času 80...
  2. Někteří lidé, kteří chtějí rozhodit start (např. hlídání dětí), si nenapíšou "různý", ale jeden "brzo" a druhý "pozdě". Jenže kategorie toho "brzo" začne startovat v 80 a kategorie toho "pozdě" skončí v 90...
  3. Se zavedením nového způsobu zadávání požadavků na start v ORISu vzrostl jejich počet. Dříve si požadavky zadávali tak HD21-HD35 (protože děti) a konec. Nyní jsou požadavky plošně HD12-HD70. Typicky chci vyhovět požadavkům v HD21-35 (protože hlídání, HDR...), ale zároveň chci plošně ignorovat všechny požadavky v HD12-20. Pro děti/mládež je to třeba soutěž, ze které se vybíhají licence (oblasťáky, ŽB) nebo nominace na dětskou olympiádu (oblasťáky), tak proč bych někoho přesouval na konec, protože nechce šlapat podrost a napsal si "pozdě - chci startovat jako poslední v kategorii".

Na základě svých zkušeností s přípravou startovek a zpracováním požadavků na start (v QE mám odpořádáno kolem 35 závodů, kde bylo ~1000 a více závodníků) si myslím, že by víc pomohl nějaký tool, jak píše @fvacek výše.

Zpracování požadavků "brzo" a "pozdě" je v pohodě a rychle řešitelné v současném stavu QE. Problém je "podobně" a "různě": Jsem v kategorii kde vidím požadavek (např.) "podobně". Musím se přepnout na všechny kategorie, fulltextem vyhledat ve které kategorii tam je ten druhý (dřív to lidi aspoň psali, teď v novém způsobu to ORIS neumožňuje...), přepnout se do té kategorie, zjistit od kdy do kdy kategorie startuje, jestli je tam prostor posun, posunout, přepnout se zpátky do kategorie toho prvního, zkontrolovat...

Velmi by pomohlo, kdybych si mohl okno rozdělit a viděl 2 okna pod sebou/vedle sebe a v každém bych mohl pracovat s jinou kategorii. Ani se nemusí vytvářet nový tool :-) Prostě jen mít možnost zduplikovat si okno na přípravu startovky a pracovat paralelně se dvěma.

xkenia commented 6 months ago

@janpalas Okno si muzes "rozdelit", pokud si otevres druhy QE ;) Funguje to na postgres i na sqlite.

A souhlasim, ze je to opruz - je uz to omezil pouze na nejake nutne minimum, co upravuji, po jednom zavode, kde ze nejakych 300 zavodniku bylo 50-60 pozadavku. Startovka nalosovana za 5 minut a pak hodinu delas zmeny a stejne na prezentaci po tobe rvou, ze je to spatne, protoze se jim zmenil plan :)

Navic si neuvedomuju, ze by v pravidlech nejaka takova vec byla, spis naopak, losovat se ma nahodne, krome zavodu s danym poradim.

Osin01 commented 6 months ago

Já bych požadavky start podobně a start rozdílně zakázal, je to šíleně pracné na zpracování.

Lepší by bylo, kdyby se tam uváděl přímo požadovaný startovní čas - jeden si dá 00, druhý 90, nebo si všichni, co chtějí běžet spolu dají stejný čas, třeba 45. Tím by se to dalo dobře zautomatizovat. Samozřejmě by se nevyhovělo všemu, ale většině ano. Po nalosování pak lze krásně vidět, jestli se požadavek akceptoval, nebo ne a případně upravit v rámci možností. Pak je tu samozřejmě možnost záměny časů za vakanty po zveřejnění startovek.

Ohledně dodržení pravidel, je to asi na zvážení hlavního rozhodčího. Možná by stálo za to definovat, v kterých kategoriích je možné požadavkům vyhovovat a v kterých ne. Na oblži to asi není problém, na mistrovství oblasti už může. V poháru veteránů je to v pohodě, v poháru elity asi ne. Ideálně to definovat přímo v Orisu, ať je to jasné při přihláškách.

janpalas commented 6 months ago

@xkenia díky, 2 QE mě nenapadly :-) Ano, časově to mám podobně. Včera příprava ŽB (1700 lidí) - losování včetně přípravy a ladění rovnoměrného rozložení po celou dobu startu asi hodina, zpracování požadavků (a to jsem dost ignoroval) - 3 hodiny. A stejně mě pak přijde někdo seřvat, že 30 minut od sebe (při startu do 220) není "podobně" :-)

@Osin01 Mě to v některých kategoriích (=žáci, dorost) nepřijde OK ani na oblasťácích. Žáci si tam vybíhají licence, místa na prestižní dětskou olympiádu, nominaci do krajských výběrů... A skutečně někteří začali být vychcaní a píšou si "pozdě", "poslední v kategorii", protože (asi) nechtějí šlapat podrost...

(Jinak svoje připomínky k této problematice včetně návrhů na řešení jsem asi před měsícem - po zavedení nového způsobu zadávání v ORISu - komunikoval e-maily Skupině pro ORIS. Ale byl jsem celkem rezolutně odmítnut...)

fvacek commented 6 months ago

Velmi by pomohlo, kdybych si mohl okno rozdělit a viděl 2 okna pod sebou/vedle sebe a v každém bych mohl pracovat s jinou kategorii. Ani se nemusí vytvářet nový tool :-) Prostě jen mít možnost zduplikovat si okno na přípravu startovky a pracovat paralelně se dvěma.

muzes si pustit 2x QE a mas to, pokud pouzijes postgres, je to uplne v klidu, v pripade sqlite by bylo lepsi mit jednu instanci QE read only https://www.sqlite.org/cgi/src/doc/begin-concurrent/doc/begin_concurrent.md