Changes for page Postup převodu dat z Clavia
Last modified by Jan Šimeček on 2025/11/03 15:11
From version 49.1
edited by Jan Šimeček
on 2024/06/28 11:10
on 2024/06/28 11:10
Change comment:
There is no comment for this version
To version 34.1
edited by Jan Šimeček
on 2024/06/28 10:42
on 2024/06/28 10:42
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 0 added, 1 removed)
Details
- Page properties
-
- Content
-
... ... @@ -11,13 +11,11 @@ 11 11 {{html}} 12 12 <button onclick="toggleContent('content1')">Tipy a Triky - přečíst</button> 13 13 <div id="content1" style="display: none;"> 14 -<hr style="border: none; height: 5px; background-color: black;"> 15 15 <p>Revize se nepřevádí, musí být před zahájením převodu do Tritia uzavřena.</p> 16 16 <p>Dispečink Clavia se nepřevádí, pokud data potřebují, tak si je musí před vypnutím Clavia opsat.</p> 17 17 <p>Statistiky LWWW se nepřevádí, knihovna si je musí opsat.</p> 18 18 <p>Neměnit klíč v definici poplatků po testovacím převodu, nepovede se pak napojení poplatků při dalším importu - měnit až po posledním importu knihovny.</p> 19 19 <p>Neměnit zkratky v odděleních, nebude fungovat vazba výchozího oddělení čtenáře - měnit až po ostrém startu.</p> 20 -<hr style="border: none; height: 5px; background-color: black;"> 21 21 </div> 22 22 <script> 23 23 function toggleContent(contentId) { ... ... @@ -62,13 +62,11 @@ 62 62 == Příprava CLAVIUS SQL == 63 63 64 64 {{html}} 65 -<button onclick="toggleContent('content4')"> O programuNASQL</button>63 +<button onclick="toggleContent('content4')">NASQL</button> 66 66 <div id="content4" style="display: none;"> 67 -<hr style="border: none; height: 5px; background-color: black;"> 68 68 <p>Pro převod dat akvizice, výpůjčního protokolu a další částí se používá přímý převod do Tritiia z SQL databáze Clavius. 69 69 <p>Proto je nutné převést celý Clavius do SQL (lze využít SQL server pro Tritius), tento krok lze vynechat jen pokud se importuje pouze fond. 70 70 <p>Je zapotřebí použít program <b>NASQL.exe</b></p> 71 -<hr style="border: none; height: 5px; background-color: black;"> 72 72 </div> 73 73 <script> 74 74 function toggleContent(contentId) { ... ... @@ -86,10 +86,10 @@ 86 86 87 87 V případě připojování dat je nutná existence čárového kódu v tabulce svazky u výměnných souborů, aby došlo ke správnému napárování: 88 88 85 + 89 89 {{html}} 90 90 <button onclick="toggleContent('content2')">Postup kontroly a příkazy pro vygenerování</button> 91 91 <div id="content2" style="display: none;"> 92 -<hr style="border: none; height: 5px; background-color: black;"> 93 93 <p><b>Kontrola dat v Claviu, jestli obsahují vygenerovaný správně ckod, kdy 31840 - je prefix nadřízené knihovny:</b></p> 94 94 <br> 95 95 <p>browse for betw(val(pcislo),500000,599999) and !empt(ckod) and ckod<>'31840'</p> ... ... @@ -100,7 +100,7 @@ 100 100 <br> 101 101 <p>repl ckod with '31840'+padl(allt(pcislo),8,'0') for betw(val(pcislo),500000,599999) and betw(len(allt(ckod)),0,8)</p> 102 102 <p>repl ckod with '31840'+right(ckod,7) for betw(val(pcislo),500000,599999) and !empt(ckod) and ckod<>'31840'</p> 103 -< hr style="border: none; height: 5px;background-color: black;">99 +<br><br> 104 104 </div> 105 105 <script> 106 106 function toggleContent(contentId) { ... ... @@ -119,13 +119,12 @@ 119 119 {{html}} 120 120 <button onclick="toggleContent('content3')">Postup kontroly a příkazy pro vygenerování</button> 121 121 <div id="content3" style="display: none;"> 122 -<hr style="border: none; height: 5px; background-color: black;"> 123 123 <p><b>Kontrola:</b></p> 124 124 <p>pohled("SELECT * FROM svazky where ckod <> ' ' AND ckod not like 'prefixImportovaneREKSovky%' AND pidkn != '˙'")</p> 125 125 <p></p> 126 126 <p><b>Oprava:</b></p> 127 127 <p>pohled("UPDATE svazky SET pidkn = '˙' where ckod <> ' ' AND ckod not like 'prefixImportovaneREKSovky%' AND pidkn != '˙'")</p> 128 -< hr style="border: none; height: 5px;background-color: black;">123 +<br><br> 129 129 </div> 130 130 <script> 131 131 function toggleContent(contentId) { ... ... @@ -156,15 +156,11 @@ 156 156 157 157 Je potřeba zaregistrovat novou knihovnu v Tritiu (Přihlášení do Tritia tlačítko Registrovat) 158 158 159 -Při převádění REKSového Clavia nebo převádění knihovny, která má {{html}}<span style="color: red;">Carmen</span></span>{{/html}} (Knihovna s REKSovkami - Clavius neobsahuje pouze jednu knihovnu) nedávat po registraci vytvořit webovou definici - vznikne naimportováním DEFWEB, kdy dojde k založení webové definice pro každou REKSovou knihovnu.154 +Při převádění REKSového Clavia nebo převádění knihovny, která má <span style="color: red;">Carmen</span>{{/html}} (Knihovna s REKSovkami - Clavius neobsahuje pouze jednu knihovnu) nedávat po registraci vytvořit webovou definici - vznikne naimportováním DEFWEB, kdy dojde k založení webové definice pro každou REKSovou knihovnu. 160 160 161 -{{html}} 162 -<span style="color: red;">!!!Pokud se jedná o sdílený server, kde již běží knihovny na ostro, tak provést zálohu databáze, kdyby se něco zvrtlo co nedokáže <a href="https://doc.tritius.cz/bin/view/uzivatelsky-manual/Pro-spravce/Postup-prevodu-dat-z-Clavia/Postup-Odstraneni-importovanych-dat/">Postup Odstranění importovaných dat</a> vyřešit a bylo potřeba provést obnovení!!!</span> 163 -{{/html}} 156 +~<span style="color: red;">!!!Pokud se jedná o sdílený server, kde již běží knihovny na ostro, tak provést zálohu databáze, kdyby se něco zvrtlo co nedokáže <a href="https://doc.tritius.cz/bin/view/uzivatelsky-manual/Pro-spravce/Postup-prevodu-dat-z-Clavia/Postup-Odstraneni-importovanych-dat/">Postup Odstranění importovaných dat</a> vyřešit a bylo potřeba provést obnovení!!!</span>{{/html}} 164 164 165 -{{html}} 166 -<span style="color: red;">!!!Před zahájením zkontrolovat dostatek místa na disku VM!!!</span> 167 -{{/html}} 158 +~<span style="color: red;">!!!Před zahájením zkontrolovat dostatek místa na disku VM!!!</span>{{/html}} 168 168 169 169 Kontrolu lze provést 2 způsoby: 170 170 ... ... @@ -173,69 +173,54 @@ 173 173 174 174 === Import dat === 175 175 176 - {{html}}<span style="color: red;">Import REKS:</span>{{/html}}nezapomenout **{{html}}<span style="color: red;">zamknout</span>{{/html}}** slovníky (především klíčová slova, popřípadě dodavatele)167 +Import REKS: nezapomenout **zamknout** slovníky (především klíčová slova, popřípadě dodavatele) 177 177 178 -** {{html}}<span style="color: red;">POZOR!!!!</span>{{/html}}**: kontrola na existenci A podpolí v Tritiu, které zbyli od minulého importu, pokud ano tak smazat před importem!:169 +**POZOR!!!!**: kontrola na existenci A podpolí v Tritiu, které zbyli od minulého importu, pokud ano tak smazat před importem!: 179 179 180 -{{html}} 181 -<button onclick="toggleContent('content5')">Příkaz pro kontrolu</button> 182 -<div id="content5" style="display: none;"> 183 -<hr style="border: none; height: 5px; background-color: black;"> 184 -<p>select count(*) from authority_data where subfield_definition in (</p> 185 -<p>select id from subfield_definition where name_sub='A')</p> 186 -<br> 187 -<p>select count(*) from work_data where subfield_definition in (</p> 188 -<p>select id from subfield_definition where name_sub='A')</p> 189 -<br> 190 -<p>dále:</p> 191 -<p>Po zapnutí Importovacího módu nesmí tabulka import_id_backup obsahovat jediný řádek, který má ve sloupci library ID právě převáděné knihovny, tedy select * from import_id_backup where library = ID_prave_prevadene_knihovny musí vrátit 0 .</p> 192 -<hr style="border: none; height: 5px; background-color: black;"> 193 -</div> 194 -<script> 195 - function toggleContent(contentId) { 196 - var content = document.getElementById(contentId); 197 - if (content.style.display === "none") { 198 - content.style.display = "block"; 199 - } else { 200 - content.style.display = "none"; 201 - } 202 - } 203 -</script> 204 -{{/html}} 171 +| 205 205 173 +{{{select count(*) from authority_data where subfield_definition in ( 174 +select id from subfield_definition where name_sub='A') 175 + 176 +select count(*) from work_data where subfield_definition in ( 177 +select id from subfield_definition where name_sub='A') 178 + 179 +dále: 180 +Po zapnutí Importovacího módu nesmí tabulka import_id_backup obsahovat jediný řádek, který má ve sloupci library ID právě převáděné knihovny, tedy select * from import_id_backup where library = ID_prave_prevadene_knihovny musí vrátit 0 . }}} 181 + 206 206 * Pokud importuji do knihovny s defaultně jiným jazykem (slovenské knihovny) musím před importem správně nastavit **SYSTEM_DEFAULT_LANGUAGE **tak i** LOCALE.** 207 -* Pokud se nejedná o multiknihovní instanci, nastavit v položkách nastavení ** {{html}}<span style="color: red;">MULTI_LIBRARY_INSTANCE</span>{{/html}}** na false ( -304 ) - musí se provést před importem vzkazů čtenářů.208 -* V záložce **Systém** je volba ** {{html}}<span style="color: green;">Import dat</span>{{/html}}**183 +* Pokud se nejedná o multiknihovní instanci, nastavit v položkách nastavení **MULTI_LIBRARY_INSTANCE** na false ( -304 ) - musí se provést před importem vzkazů čtenářů. 184 +* V záložce **Systém** je volba **Import dat** 209 209 * Spustí se importní mód - běžní uživatelé se do knihovny v importním módu nemohou přihlásit 210 210 * //Doporučení - naimportovat dump databáze na VM s Tritiem pod uživatelem root (import je řádově rychlejší)// 211 211 * URL spojení databázi Clavius SQL kde jsou výpůjčky : 212 -** Pro MySQL: **jdbc:mysql:~/~/server.lanius.cz:3306/// {{html}}<span style="color: green;"><databaseName></span>{{/html}}//?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Europe/Prague**213 -** Pro MSSQL: **jdbc:sqlserver:~/~/192.168.0.24:1433;databaseName=// {{html}}<span style="color: green;"><databaseName></span>{{/html}}//**;SendStringParametersAsUnicode=False;214 -* Zadáte uživatele a heslo pro připojení do databáze a tlačítkem ** {{html}}<span style="color: green;">Připojit</span>{{/html}}** provedete spojení (po úspěchu se tlačítko změní na **Odpojit**)215 -* ** {{html}}<span style="color: green;">Start import mode</span>{{/html}}**188 +** Pro MySQL: **jdbc:mysql:~/~/server.lanius.cz:3306///<databaseName>//?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Europe/Prague** 189 +** Pro MSSQL: **jdbc:sqlserver:~/~/192.168.0.24:1433;databaseName=//<databaseName>//**;SendStringParametersAsUnicode=False; 190 +* Zadáte uživatele a heslo pro připojení do databáze a tlačítkem **Připojit** provedete spojení (po úspěchu se tlačítko změní na **Odpojit**) 191 +* **Start import mode** 216 216 * Postupně procházíme jednotlivé záložky zleva do prava. Vynecháváme ty které nejsou vždy (akvizice, webový katalog Carmen) 217 -** ** {{html}}<span style="color: green;">Záložka Definice</span>{{/html}}** - vybrat postupně po jedné definiční tabulky a dejte **Importuj** vybrané tabulky (v případě opakovaného importu podruhé neprovádět !!!)193 +** **Záložka Definice** - vybrat postupně po jedné definiční tabulky a dejte **Importuj** vybrané tabulky (v případě opakovaného importu podruhé neprovádět !!!) 218 218 *** **Definici webů (DEFWEB)** importovat pouze pro REKSové knihovny (při převodu do sdílené knihovny je třeba založit ručně při registraci knihovny) 219 219 *** Pokud se nepodaří v případě knihovny, která má Carmen převést DEFWEB, tak stačí v Tritius založit ručně webovou definici a do import_id vyplnit ID, které se najde v databázi Clavia: 220 220 *** SELECT distinct defWebId FROM car_cloud; 221 221 222 -* 198 +* 223 223 ** //Doporučení - Pokud se jedná o převod větší knihovny, tak po importu větších dat (autorit, díla, poplatky, čtenáři, výpůjčky, ...) dělat zálohu databáze// 224 -** ** {{html}}<span style="color: green;">Záložka Autority</span>{{/html}}{{html}}<span style="color: red;">(u REKSovky zvážit neimportování!)</span>{{/html}}**:200 +** **Záložka Autority (u REKSovky zvážit neimportování!)**: 225 225 *** tlačítko Nahrát soubor nalistujeme **AUTORITY.TAG** a po jeho nahrání jej vybereme a dáme Importovat. Po importu jsou chybné, neimportované záznamy v souboru failed 226 226 ** Pokud je soubor velký desítky MB a nejde nahrát zkuste přímou adresu např. : [[http:~~/~~/192.168.0.250:8080/Tritius/>>url:http://192.168.0.250:8080/Tritius/cz.effectiva.tritius.Application/Application.html#Import_wizard]] takto obejdete Apache web server 227 -** ** {{html}}<span style="color: green;">Záložka Díla a Svazky</span>{{/html}} {{html}}<span style="color: red;">(u REKSovky zvážit ztitulování a neskládání autorit!)</span>{{/html}}:**203 +** **Záložka Díla a Svazky (u REKSovky zvážit ztitulování a neskládání autorit!):** 228 228 *** obsah složky **NAWEB** z Clavia (pokud existuje) - v průvodci importu dat je na záložce import děl tlačítko, které nahraje zabalenou složku (NAWEB.zip) do příslušné složky a rozbalí. (dříve - ručně nakopírovat do složky Tritia (\tritius\files\Clavius\WORK\NAWEB) 229 -*** {{html}}<span style="color: red;">Pozor: zkontrolovat názvy souborů pokud obsahují mezery nebo znaky s diakritikou nedojde k propojení !!!</span>{{/html}}205 +*** Pozor: zkontrolovat názvy souborů pokud obsahují mezery nebo znaky s diakritikou nedojde k propojení !!! 230 230 *** Typ importu duplicit - kontroluje duplicitu podle typu dokumentu a ISBN, popřípadě podle typu dokumentu, názvu, autora a roku (Zkontrolovat duplicity ISBN v TAGu) 231 231 *** Přes Nahrát soubor vybereme **DATA.TAG** a po jeho nahrání jej vybereme a dáme Importovat. Po importu jsou chybné, neimportované záznamy v souboru failed 232 232 *** Problémové záznamy v souboru failed, které se nenaimportovaly, je potřeba hned řešit tzn. **opravit a opakovaně importovat teprve pak se může pokračovat**! 233 -** ** {{html}}<span style="color: green;">Čtenáři:</span>{{/html}}**234 -*** Vybrat CTENARI nebo CTENARI_DO_VSECH_KNIHOVEN - {{html}}<spanstyle="color: red;">neimportovat obě!</span>{{/html}}235 -** ** {{html}}<span style="color: green;">MVS</span>{{/html}}**209 +** **Čtenáři:** 210 +*** Vybrat CTENARI nebo CTENARI_DO_VSECH_KNIHOVEN - neimportovat obě! 211 +** **MVS** 236 236 *** Lepší Vytvářet nové záznamy, aby nedocházelo k propojení rezervací na MVS. 237 -** ** {{html}}<span style="color: green;">Záložka Výpůjčky</span>{{/html}}**:238 -*** Vybrat KPUJCKY nebo KPUJCKY_REKS - {{html}}<spanstyle="color: red;">neimportovat obě!</span>{{/html}}213 +** **Záložka Výpůjčky**: 214 +*** Vybrat KPUJCKY nebo KPUJCKY_REKS - neimportovat obě! 239 239 *** postupně po jednotlivých tabulkách importovat a v logu kontrolovat provedení. 240 240 *** **Poplatky **- způsob uhrazení (poplatek.kartou) 241 241 **** 0 - platba v hotovosti ... ... @@ -246,12 +246,12 @@ 246 246 247 247 === Odstranění importovaných dat === 248 248 249 -Pokud dojde během importu k problému s některou částí importu (kromě nastavení), tak ji lze smazat pomocí: [[Postup Odstranění importovaných dat>> doc:.Postup-Odstraneni-importovanych-dat.WebHome]]225 +Pokud dojde během importu k problému s některou částí importu (kromě nastavení), tak ji lze smazat pomocí: [[Postup Odstranění importovaných dat>>url:https://confluence.tritius.cz/pages/viewpage.action?pageId=102925148]] 250 250 251 251 == Nastavení po importu == 252 252 253 -* ** {{html}}<span style="color: red;">Před ukončením importního módu je třeba vytvořit zálohu databáze.</span>{{/html}}**254 -* ** {{html}}<span style="color: red;">Ukončit import mód - až v momentě, kdy jsou všechna data správně převedená! **(u velkého serveru může zastavení trvat i půl hodiny)</span>{{/html}}**229 +* **Před ukončením importního módu je třeba vytvořit zálohu databáze.** 230 +* **Ukončit import mód - až v momentě, kdy jsou všechna data správně převedená! **(u velkého serveru může zastavení trvat i půl hodiny) 255 255 * Pokud se převáděla konfigurace výpůjčního protokolu je potřeba projít a opravit podmínky v následujících částek nastavení, jinak by spadla reindexace: 256 256 ** Kategorie operací 257 257 ** Pravidla registrací ... ... @@ -266,11 +266,81 @@ 266 266 * **Restart Tomcatu pomocí tools** (vyčistí se paměť po importu) !!!((( 267 267 268 268 ))) 269 -* ** {{html}}<span style="color: red;">Provést nastavení podle checklist!!!!</span>{{/html}}**270 -* ** {{html}}<span style="color: red;">Přečíst 2.1 Tipy a Triky na začátku stránky!</span>{{/html}}**245 +* **Provést nastavení podle checklist!!!!** 246 +* **Přečíst 2.1 Tipy a Triky na začátku stránky!** 271 271 272 272 = Regulární výrazy pro opravy dat = 273 273 274 274 Všechny nové regulární výrazy je třeba nejprve otestovat vývojářem - **ReplaceHelperTest**. 275 275 276 -[[attach:TP-109543491-280624-1107-24.pdf||target="_blank"]] 252 +|((( 253 +== Autority == 254 + 255 +|=Popis problému|=Regulární výraz|=Vstup|=Výstup|=(% colspan="1" %)Poznámka 256 +| Pole 100 obsahuje podpole 4.| 257 + 258 +{{{100\\ [\\ 0-9]{2}\\ \\$4.*}}}| 259 + 260 +{{{100 1 $4070}}}| |(% colspan="1" %)Celé pole se zahodí. 261 + 262 +| Obsahuje pole 1??| 263 + 264 +{{{(1\?\?\ )(.*,.*)§100 $2}}} 265 + 266 +{{{(1\?\?\ )(.*)§110 $2}}}| 267 + 268 +{{{1?? $aAudoly, Sylvie}}}| 269 + 270 +{{{100 $aAudoly, Sylvie}}}|(% colspan="1" %)Pokusí se rozpoznat zda se jedná o osobní jméno, nebo korporaci (pokud je osobní jméno, obsahuje hodnota čárku) 271 + 272 +|(% colspan="1" %)Pole 1XXa je prázdné|(% colspan="1" %) 273 + 274 +{{{^1??.*\\$a$}}}| 275 + 276 +{{{199 $a}}}|(% colspan="1" %) |Odstraní se celé opakování pole 277 + 278 +|(% colspan="1" %)Obsahuje pole 100 a 110|(% colspan="1" %) 279 + 280 +{{{^110.*}}}| 281 + 282 +{{{100 1 $aRoni, Luigi 110 2 $aRoni, Luigii}}}| 283 + 284 +{{{100 1 $aRoni, Luigi}}}|(% colspan="1" %)Odstraní opakování pole 110 285 + 286 +== Díla == 287 + 288 +|=Popis problému|=Regulární výraz|=Vstup|=Výstup|=(% colspan="1" %)Poznámka 289 +|Odkazy na soubory v NAWEB obsahují před adresářem neplatné znaky.| 290 + 291 +{{{(X00[\ ]{4}.*\$[uo]).*(NAWEB.*)(\$.*)§$1$2$3 (X00[\ ]{4}.*\$[uo]).*(NAWEB.*)§$1$2}}}| 292 + 293 +{{{X00 $uW:\NAWEB\OBSAHY\N38492.pdf$tObsah$oNAWEB\2016_Knihy\N38492.jpg X00 $uW:\NAWEB\OBSAHY\N38492.pdf$tObsah$oW:\NAWEB\2016_Knihy\N38492.jpg X00 $uNAWEB\OBSAHY\N38492.pdf$tObsah$oW:\NAWEB\2016_Knihy\N38492.jpg X00 $oW:\NAWEB\OBSAHY\N38492.pdf$tObsah$uNAWEB\2016_Knihy\N38492.jpg X00 $oW:\NAWEB\OBSAHY\N38492.pdf$tObsah$uW:\NAWEB\2016_Knihy\N38492.jpg X00 $oNAWEB\OBSAHY\N38492.pdf$tObsah$uW:\NAWEB\2016_Knihy\N38492.jpg}}}| 294 + 295 +{{{X00 $uNAWEB\OBSAHY\N38492.pdf$tObsah$oNAWEB\2016_Knihy\N38492.jpg X00 $uNAWEB\OBSAHY\N38492.pdf$tObsah$oNAWEB\2016_Knihy\N38492.jpg X00 $uNAWEB\OBSAHY\N38492.pdf$tObsah$oNAWEB\2016_Knihy\N38492.jpg X00 $oNAWEB\OBSAHY\N38492.pdf$tObsah$uNAWEB\2016_Knihy\N38492.jpg X00 $oNAWEB\OBSAHY\N38492.pdf$tObsah$uNAWEB\2016_Knihy\N38492.jpg X00 $oNAWEB\OBSAHY\N38492.pdf$tObsah$uNAWEB\2016_Knihy\N38492.jpg}}}|(% colspan="1" %)Odstraní znaky co nepatří před NAWEB. 296 + 297 +|(% colspan="1" %)X00 odakzuje na adresář, který neexistuje z důvodu velikosti písmen na linuxu (velikost písmen se musí shodovat).|(% colspan="1" %) 298 + 299 +{{{(X00[\ ]{4}\$[ou]NAWEB[\\/])OBSAHY([\\/].*)§$1Obsahy$2}}}| 300 + 301 +{{{X00 $oNAWEB/OBSAHY/NC3404.pdf}}}| 302 + 303 +{{{X00 $oNAWEB/Obsahy/NC3404.pdf}}}|(% colspan="1" %)Změna velikosti písmen "OBSAHY" → "Obsahy". Regulární příkaz se musí dát až za regulární příkaz opravující validnost cesty. 304 + 305 +|(% colspan="1" %)Obsahuje pole ???.|(% colspan="1" %) 306 + 307 +{{{^\?\?\?.*}}}| 308 + 309 +{{{??? $aCzech Republic$eautomapa}}}|(% colspan="1" %) |Odstraní otazníkové pole. 310 + 311 +|(% colspan="1" %)1XX4 nebo 7XX4 obsahuje neexistující kód role|(% colspan="1" %) 312 + 313 +{{{(^[710]{3}.*)(\$4sut)(.*)§$1$3}}}| 314 + 315 +{{{100 1 $A1000239919$aLiker, Jeffrey K.$7xx0031426$4sut}}}| 316 + 317 +{{{100 1 $A1000239919$aLiker, Jeffrey K.$7xx0031426}}}|(% colspan="1" %)kód role z autority Neznámý kód role odstraní. 318 + 319 + 320 +))) 321 + 322 + ~{~{/html}}~{~{/html}}
- TP-109543491-280624-1107-24.pdf
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.simecek - Size
-
... ... @@ -1,1 +1,0 @@ 1 -48.8 KB - Content