Wiki source code of Certifikát
Last modified by admin admin on 2026/04/17 08:32
Show last authors
| author | version | line-number | content |
|---|---|---|---|
| 1 | (% class="box" %) | ||
| 2 | ((( | ||
| 3 | Certifikát je listina potvrzující, že uživatel splnil nějakou aktivitu a dosáhl tak určité úrovně. Competent tyto certifikáty generuje automaticky na základě dosažených výsledků a šablony ODT. Tato šablona obsahuje jednak formátování pro výsledný certifikát, jednak také řízení pro jeho vygenerování. | ||
| 4 | ))) | ||
| 5 | |||
| 6 | = Správa šablon v Competentu od nahrání ke stažení = | ||
| 7 | |||
| 8 | **Šablony do Competentu nahráváme **stejným způsobem jako další soubory, přes obrazovku [[Soubory 💻>>doc:Uživatelská příručka Competent.Uživatelské rozhraní.Administrátorské rozhraní.Obrazovka Soubory.WebHome]] nebo přes otevřený vedlejší panel [[Výběr souboru 💻>>doc:Uživatelská příručka Competent.Uživatelské rozhraní.Sdílené komponenty.Vedlejší panely.Výběr souboru.WebHome]]. Na obrazovce Soubory musíme nahraný soubor ještě označit jako šablonu certifikátu. | ||
| 9 | |||
| 10 | (% class="box" %) | ||
| 11 | ((( | ||
| 12 | [[image:A-Files-markAsCertTemplate.png]] | ||
| 13 | Soubor je již nahrán. Po kliknutí pravým tlačítkem myši zobrazíme kontextovou nabídku souboru a označíme soubor jako šablonu certifikátu. | ||
| 14 | ))) | ||
| 15 | |||
| 16 | **Přiřazení šablony k aktivitě **provedeme stejně jako přiřazení jakéhokoli jiného souboru (viz [[Detail aktivity, tab Dokumenty 💻>>doc:Uživatelská příručka Competent.Uživatelské rozhraní.Administrátorské rozhraní.Obrazovka Aktivity.Detail aktivity.WebHome]]). | ||
| 17 | |||
| 18 | (% class="box infomessage" %) | ||
| 19 | ((( | ||
| 20 | Je důležité, jaký stav k souboru zvolíme. Jedná-li se skutečně o certifikát, je nutné zvolit takový stav aktivity, kdy je aktivita úspěšně splněna. Při chybné volbě stavu nemusejí být vyplněny všechny položky. | ||
| 21 | ))) | ||
| 22 | |||
| 23 | **Stažení původního souboru**, podle kterého se generuje certifikát, může administrátor v [[Detail aktivity, tab Dokumenty 💻>>doc:Uživatelská příručka Competent.Uživatelské rozhraní.Administrátorské rozhraní.Obrazovka Aktivity.Detail aktivity.WebHome]], kde jsou vypsány všechny přiřazené soubory včetně možnosti je stáhnout. | ||
| 24 | |||
| 25 | **Stažení vygenerovaného certifikátu** může provést administrátor aktivity nebo student, jemuž je aktivita přiřazena, za těchto podmínek: | ||
| 26 | |||
| 27 | * Aktivita musí být ve stavu, který je zároveň nastaven i u přiřazeného souboru | ||
| 28 | * Administrátor musí mít přístup k aktivitě i uživateli (uživatel se zobrazí v detailu dané aktivity v tabu Uživatelé) | ||
| 29 | |||
| 30 | Přiřazený uživatel ve studentském módu přejde na detail sobě přiřazené aktivity ([[Detail uživatelské aktivity 💻>>doc:Uživatelská příručka Competent.Uživatelské rozhraní.Administrátorské rozhraní.Obrazovka Aktivity.Detail aktivity.WebHome]]) a stáhne soubor s certifikátem (přp. všechny soubory v archivu ZIP). Soubor s certifikátem již bude vyplněný a připravený k možnému vytištění. | ||
| 31 | |||
| 32 | Administrátor s přístupem do detailu aktivity v seznamu uživatelů uvidí možnost stažení uživatelského certifikátu. Po kliknutí se stáhne požadovaný certifikát. | ||
| 33 | |||
| 34 | [[image:A-ActivityDetail-userCertificatesDownload.png]] | ||
| 35 | |||
| 36 | Administrátorský pohled na seznam uživatelů u aktivity | ||
| 37 | |||
| 38 | **(1) **Uživatel splnil aktivitu, certifikát ale není ke stažení. Pro uživatele je aktivita stále spuštěna a pro tento stav nebyla šablona označena. | ||
| 39 | |||
| 40 | **(2)** Druhý uživatel aktivitu ještě nesplnil. | ||
| 41 | |||
| 42 | **(3)** Kamil Dvořák má aktivitu splněnou ve stavu Dokončeno. Zobrazilo se mu tedy tlačítko pro stažení certifikátu [[image:ico-downloadCert.png]]. | ||
| 43 | |||
| 44 | (% class="box warningmessage" %) | ||
| 45 | ((( | ||
| 46 | **(4)** I pro Milana Hakuze se tlačítko pro stažení certifikátu zobrazilo, i když nebyl v plnění úspěšný. | ||
| 47 | CUid acqjp7 | ||
| 48 | ))) | ||
| 49 | |||
| 50 | = Tvorba šablony ODT = | ||
| 51 | |||
| 52 | (% class="box" %) | ||
| 53 | ((( | ||
| 54 | Šablony certifikátů vytváříme v textových programech typu LibreOffice ([[web>>https://cs.libreoffice.org/download/download/]]), které umožňují ukládat ve formátu ODT. Nad rámec tohoto formátu označíme místa pro vložení dat pomocí //placeholderů //ve formátu ##${název}## a pro případnou manipulaci se vstupními daty využijeme skriptovací jazyk ZenScript založený na Javascriptu. | ||
| 55 | ))) | ||
| 56 | |||
| 57 | Šablona certifikátu se zpracovává proti vstupním datům, které jsou k dispozici pro skript. Tento skript data přetvoří do takové podoby, aby je bylo možné složit na požadovaná místa. | ||
| 58 | |||
| 59 | V následujícím textu budeme představíme doporučený postup při tvorbě šablon a zároveň ukážeme, jak systém funguje. | ||
| 60 | |||
| 61 | == 1. Úprava statického dokumentu == | ||
| 62 | |||
| 63 | * Ve spolupráci s grafikem vytvoříme požadovaný vzhled certifikátu. Můžeme jej naplnit nesmyslnými daty (ta později nahradíme), abychom odladili velikost písma nebo rozsah na stránce. | ||
| 64 | * Při nahrazování se pro celou proměnnou použije formátování aplikované na znak dolaru. Můžeme to využít ve chvíli, kdy jsou názvy proměnných příliš dlouhé a rozložení dokumentu rozrušují. | ||
| 65 | * Jednotlivé proměnné (jméno, příjmení, vystavení dokumentu apod.) uzavřeme do závorek za znakem dolaru, (% style="background-color:#bdc3c7" %)##${název proměnné}##(%%), např. chceme-li vypsat jméno prvního uživatele, bude zápis vypadat takto: (% style="background-color:#bdc3c7" %)##${SERVER.user.firstName}##(%%) | ||
| 66 | [[image:Certificate-script-placeholders.png]] | ||
| 67 | Ukázka proměnných v šabloně. Vypisujeme zde postupně jméno a příjmení uživatele a aktivitu, kterou absolvoval. Protože mohou být proměnné delší, než jsou skutečná jména **(1)** a mohla by v šabloně vadit, můžeme využít vlastnosti, kdy se použije formátování prvního znaku, tedy dolaru ((% style="background-color:#bdc3c7" %)##$##(%%)). Díky tomu může šablona vypadat konsistentněji a při návrhu více odpovídat požadovanému výsledku. V případě **(2)** jsme použili co nejmenší písmo, v případě **(3)** mezery mezi písmeny. Výsledný text bude formátován stejně jako znak dolaru. | ||
| 68 | * Jestliže proměnná nemá hodnotu, nevypíše se nic. Pokud ale neexistuje ani tato proměnná, vypíše se do PDF chybový stav, např. (% style="background-color:#bdc3c7" %)##!N/A{User.params.certificateId}##(%%). | ||
| 69 | * Vypisování netextových polí má následující výchozí chování. K jinému naformátování rozšiřte šablonu skriptem: | ||
| 70 | ** Data typu Date (datum, viz [[Datové typy 📖>>doc:Uživatelská příručka Competent.Slovník.Datové typy.WebHome]]) se vypisují ve formátu (% style="background-color:#bdc3c7" %)##<den>.<mezera><měsíc>.<mezera><rok>##(%%). | ||
| 71 | ** Data typu DateTime (datm a čas, viz [[Datové typy 📖>>doc:Uživatelská příručka Competent.Slovník.Datové typy.WebHome]]) se vypisují ve formátu(% style="background-color:#bdc3c7" %)## <den>.<měsíc>.<mezera><rok><mezera><hodina-24h>:<minuta>:<vteřina>##(%%). | ||
| 72 | |||
| 73 | Datový objekt se jmenuje (% style="background-color:#bdc3c7" %)##SERVER##(%%)## ##a obsahuje data uživatelského přístupu k aktivitě rozdělená do podobjektů user, activity a access. Jejich pole (popsaná na odkazovaných stránkách) jsou dostupná k výpisu. | ||
| 74 | |||
| 75 | * activity - objekt [[Aktivita 📖>>doc:Uživatelská příručka Competent.Slovník.Aktivita.WebHome]] | ||
| 76 | * user - objekt [[Uživatel 📖>>doc:Uživatelská příručka Competent.Slovník.Uživatel.WebHome]] | ||
| 77 | * access - [[Přiřazení Aktivity Uživateli (přístup) 📖>>doc:Uživatelská příručka Competent.Slovník.Přiřazení Aktivity Uživateli (přístup).WebHome]] | ||
| 78 | ** V rámci objektu access jsou pak dostupná nejen pole samotného přístupu, ale i dalších návazných objektů: | ||
| 79 | ** nejlepší pokus- [[Pokusy uživatele 📖>>doc:Uživatelská příručka Competent.Slovník.Pokusy uživatele.WebHome]] | ||
| 80 | ** běh aktivity -[[ Termín aktivity 📖>>doc:Uživatelská příručka Competent.Uživatelské rozhraní.Administrátorské rozhraní.Obrazovka Aktivity.WebHome]] | ||
| 81 | ** běh sady - [[Termín sady 📖>>doc:Uživatelská příručka Competent.Slovník.Termínová sada.WebHome]] | ||
| 82 | |||
| 83 | (% class="box infomessage" %) | ||
| 84 | ((( | ||
| 85 | **Parametry** jednotlivých objektů naleznete ve tomto Slovníku u jednotlivých objektů. Jedná se o anglické názvy uvedené v nadpisu daného parametru. Např. datum poslední úpravy aktivity by mělo být uloženo v parametru ##lastUpdated## a jeho hodnotu ve skriptu získáme ze ##SERVER.activity.lastUpdated##. | ||
| 86 | **Nepovinné parametry** (parametry [[subtypu 📖>>doc:Main.Official manuals.Competent - Uživatelská příručka.Slovník.Subtyp.WebHome]]) jsou seskupeny do podobjektu params (##SERVER.user.params.*##) | ||
| 87 | ))) | ||
| 88 | |||
| 89 | == 2. Zpracování dat skriptem == | ||
| 90 | |||
| 91 | Vedle přímého zápisu vstupních dat (výše) můžeme provést zpracování pomocí skriptu vloženého do komentáře na začátek dokumentu. Jedná se o javascript zpracovávaný pomocí knihovny //javax.script//. Komentář se skriptem je povinně uveden textem: (% style="background-color:#bdc3c7" %)##/*ZenScript*/;##(%%), kvůli odlišení od jiných typů komentářů. | ||
| 92 | |||
| 93 | [[image:cert_source_vs_output.png]] |