Open lukaskett opened 2 years ago
Pokud to oris API nepodporuje, tak se bojim, ze ty nazvy klubu jinak nestahneme.
jj, je to vlastně spíš stručný návod kdyby to někdo potřeboval. Zavírám.
k tomu snad jen to, ze id
je serial
, takze by v tom insertu ani nemuselo byt
ad ORIS ... nezkoumal jsem to, ale dle popisu API, cast :
- getClub - informace o konkrétním klubu
- povinné parametry:
'id': číslo nebo zkratka klubu (viz getCSOSClubList)
- nepovinné parametry:
'eventkey': bezpečnostní klíč závodu pro kluby jednorázových přihlášek
se zda ze by to mohlo umet, ne ?
Akorat eventkey
zatim v QE nemame.
Da se ziskat v zavode jako Bezpečnostní klíč závodu
, delka 32 znaku,
Ale nejpsis ho vidi jen poradatele.
@arnost00 máš pravdu, byl jsem schopen jméno klubu z jednorázové přihlášky dostat. Bezpečnostní klíč je vidět jen po přihlášení a musíš mít právo na editaci závodu.
Mohlo by to fungovat tak, že se po zadání bezpečnostního klíče, který si člověk co pracuje s QE buď zjistí sám nebo od někoho z hlavních pořadatelů co mají přístup, stáhnou názvy klubů z jednorázových přihlášek a uloží do tabulky k ostatním klubům.
Bestík v rámci rozvoje Orisu upravil getClub
metodu, která nyní vrací zkratku a název i pro klub z jednorázové přihlášky. Není tedy potřeba eventkey. Např. https://oris.orientacnisporty.cz/API/?format=json&method=getClub&id=17095
{
"Method": "getClub",
"Format": "json",
"Status": "OK",
"ExportCreated": "2023-01-08 21:56:33",
"Data": {
"ID": "17095",
"Name": "UKS "Orientpark.pl" Iwiny",
"Number": "",
"Abbr": "003"
}
}
Předpokládám, že se aktuálně stahuje seznam všech klubů registrovaných v ČSOS (getCSOSClubList
), ke kterému by to chtělo doplnit názvy přihlášených neregistrovaných kluby. Nenapadá mě jak to jednoduše udělat. Volání getClub
pro každou přihlášku a validace existence záznamu mi přijde zbytečně moc requestů/pomalé.
Projevuje se i u online výsledků, kde závodníci s kluby vypadají o dost lépe. Např. i u zahraničních:
Pokud se navrhne nějaké rozumné rozšíření ORIS api, co by pomohlo. Tak pak není problém to dát jako podnět skupině pro ORIS a v nějakém časovém horizontu implementovat.
Aktuální verze api umožňuje názvy klubů z jednorázových přihlášek naimportovat. Je potřeba použít kombinaci metod getEventEntries
a getClub
pro kluby, kterým nevrátí metoda getCSOSClubList
název.
Pokud by bylo moc kostrbaté, chtělo by to novou metodu, která vrátí seznam přihlášených klubů do závodu, např. getEventClubList
. Ta by kombinovala registrované i neregistrované kluby.
Zvláštním případem jsou oblastní "kluby" - JEO
, ZCO
apod. používané hlavně u štafet, které se vyskytují docela často, ale chovají se stejně jako neregistrované kluby.
Zvláštním případem jsou oblastní "kluby" -
JEO
,ZCO
apod. používané hlavně u štafet, které se vyskytují docela často, ale chovají se stejně jako neregistrované kluby.
Tohle se mozna bude tykat i #902
Než se issue posune do automatického nahrávání z Orisu, tak nabízím python script, který pro id závodu v Orisu
a id závodu v QuickEventu
vytvoří sql soubor s db inserty názvů klubů z jednorázových přihlášek do tabulky clubs
. Postup ve Windows pro PostgreSQL je následující:
ORIS ID
) a id závodu v QuickEventu (Event ID
)python get_club_names_inserts.py <oris_id> <qe_event_id>
# např. python get_club_names_inserts.py 7085 kam_cps_230423
pgAdmin
apod.), obsah vytvořeného souboru vlož do sql nástroje a spusť.Nyní se ti budou zobrazovat názvy klubů u všech závodníků a půjdou do všech výstupů - startovek, výsledků, online výsledků apod.
Ahoj, dovolil bych si rozšířit tento request i o doplnění podpory pro názvy klubů zahraničních závodníků, kteří mají jiný formát registračního čísla. Naše Saxbo je součástí českého i německého rankingu a všichni němečtí závodníci musí mít registrační číslo v jejich formátu (DE0NNNNN). Tím pádem ve výstupech po klubech jsou všichni pod zkratkou DE0.
Zkusil jsem ručně každému cizinci vyplnit "Klub" v přihlášce a doufal, že by to mohlo mít přednost před automatickým klubem z registračky, ale tak to nefunguje:
Pokud máte nějakou radu, jak tam ty německé kluby dostat (např. přímo přes SQL), rád ji aplikuju (závod máme zítra). Dík!
@ljezek kdyz jsem delal WMOC a pouzival jsem kluby v textovem poli tak jsem je vypisoval pres upraveny report, jinak bohuzel klub z db se prirazuje pres prvni 3 pismena z registrace.
Muselo by se prepsat chovani klubu v QE, neni to dle meho vubec maly zasah. A navic ted pro velke zasahy neni dobra doba (QE2/QE3)
Aktuální verze api umožňuje názvy klubů z jednorázových přihlášek naimportovat. Je potřeba použít kombinaci metod
getEventEntries
agetClub
pro kluby, kterým nevrátí metodagetCSOSClubList
název.Pokud by bylo moc kostrbaté, chtělo by to novou metodu, která vrátí seznam přihlášených klubů do závodu, např.
getEventClubList
. Ta by kombinovala registrované i neregistrované kluby.Zvláštním případem jsou oblastní "kluby" -
JEO
,ZCO
apod. používané hlavně u štafet, které se vyskytují docela často, ale chovají se stejně jako neregistrované kluby.
Idealni by bylo, kdyby getEventEntries
vracelo pro vsechny nebo jenom pro neregistrovane krome clubid
take clubname
Dalo by se nějak do QE dotahovat jméno klubu, které si zadají závodníci přes jednorázovou přihlášku? Když nahrávám výsledky např na OResults, tak mi to přijde lepší zobrazovat zadaný název než číslo. Je pravda, že občas jsou názvy slabší.
V Oris API jsem možnost získání názvu klubu nenašel. V getEventEntries se posílá jen id klubu, na které se dle mého nedá dotázat.
Je potřeba udělat inserty do tabulky clubs, na kterou je vazba přes zkratku klubu (první tři znaky registračky, jestli jsem dobře pochopil). Ukázka insertů do db, kdyby si s tím chtěl taky někdo hrát:
Následně se na OResults zobrazuje krásně jak jsem chtěl :laughing: