Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Názvy klubů u jednorázových přihlášek #820

Open
lukaskett opened this issue Oct 12, 2022 · 15 comments
Open

Názvy klubů u jednorázových přihlášek #820

lukaskett opened this issue Oct 12, 2022 · 15 comments

Comments

@lukaskett
Copy link

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ší.
image

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.

<Entry_2187774>
<ID>2187774</ID>
<ClassID>163558</ClassID>
<ClassDesc>T3</ClassDesc>
<RegNo>0060001</RegNo>
<Name>Vobořilová Markéta</Name>
<FirstName/>
<LastName/>
<RentSI>0</RentSI>
<SI>2039125</SI>
<Licence/>
<RequestedStart/>
<UserID/>
<ClubUserID/>
<ClubID>15952</ClubID>
<Note/>
<Fee>100</Fee>
<EntryStop>1</EntryStop>
<CreatedDateTime>2022-10-02 08:46:47</CreatedDateTime>
<CreatedByUserID/>
<UpdatedDateTime/>
<UpdatedByUserID/>
</Entry_2187774>

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:

insert into kam_oblz_pohori_221016.clubs
(id,name,abbr)
values
(223,'Terronska UTD','003'),
(224,'Berani','004'),
(225,'Dezorientovaní šneci','005'),
(226,'CZAR','006')

Následně se na OResults zobrazuje krásně jak jsem chtěl 😆
image

@fvacek
Copy link
Collaborator

fvacek commented Oct 16, 2022

Pokud to oris API nepodporuje, tak se bojim, ze ty nazvy klubu jinak nestahneme.

@lukaskett
Copy link
Author

jj, je to vlastně spíš stručný návod kdyby to někdo potřeboval. Zavírám.

@fvacek
Copy link
Collaborator

fvacek commented Oct 16, 2022

k tomu snad jen to, ze id je serial, takze by v tom insertu ani nemuselo byt

@arnost00
Copy link
Contributor

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 ?

@arnost00
Copy link
Contributor

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.

@lukaskett
Copy link
Author

@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.
image

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.

@lukaskett
Copy link
Author

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 &#34;Orientpark.pl&#34; 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é.

@lukaskett
Copy link
Author

Projevuje se i u online výsledků, kde závodníci s kluby vypadají o dost lépe. Např. i u zahraničních:
image

@otahirs
Copy link
Member

otahirs commented Apr 25, 2023

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.

@lukaskett
Copy link
Author

lukaskett commented Apr 26, 2023

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.

@arnost00
Copy link
Contributor

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

@lukaskett
Copy link
Author

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í:

  1. Zjisti si id závodu v Orisu (ORIS ID) a id závodu v QuickEventu (Event ID)
  2. Stáhni si script, rozbal a v adresáři pusť příkazovou řádku
    get_club_names_inserts.zip
  3. Spusť script (musíš mít nainstalovaný python)
python get_club_names_inserts.py <oris_id> <qe_event_id>
# např. python get_club_names_inserts.py 7085 kam_cps_230423
  1. Pusť si db klienta (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.

@ljezek
Copy link

ljezek commented May 24, 2024

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:
image
image

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!

@arnost00
Copy link
Contributor

@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)

@fvacek
Copy link
Collaborator

fvacek commented May 27, 2024

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.

Idealni by bylo, kdyby getEventEntries vracelo pro vsechny nebo jenom pro neregistrovane krome clubid take clubname

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants