Wiki source code of Certifikát
Last modified by Petr Blšťák on 2022/06/08 11:58
Hide last authors
author | version | line-number | content |
---|---|---|---|
![]() |
3.2 | 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:Main.Official manuals.Competent - Uživatelská příručka.Uživatelské rozhraní.Administrátorské rozhraní.Obrazovka Soubory.WebHome]] nebo přes otevřený vedlejší panel [[Výběr souboru 💻>>doc:Main.Official manuals.Competent - Uživatelská příručka.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:Main.Official manuals.Competent - Uživatelská příručka.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 | |||
![]() |
5.1 | 23 | **Stažení původního souboru**, podle kterého se generuje certifikát, může administrátor v [[Detailu aktivity, tabu Dokumenty 💻>>doc:Main.Official manuals.Competent - Uživatelská příručka.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. |
![]() |
3.2 | 24 | |
![]() |
5.1 | 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 | |||
![]() |
3.2 | 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:Main.Official manuals.Competent - Uživatelská příručka.Uživatelské rozhraní.Studentské rozhraní.Obrazovka Aktivity.Obrazovka Detail uživatelské 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ý. | ||
![]() |
4.1 | 47 | CUid acqjp7 |
![]() |
3.2 | 48 | ))) |
49 | |||
50 | = Tvorba šablony ODT = | ||
![]() |
4.1 | 51 | |
52 | (% class="box" %) | ||
53 | ((( | ||
![]() |
11.2 | 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. |
![]() |
4.1 | 55 | ))) |
56 | |||
![]() |
5.2 | 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. | ||
![]() |
10.2 | 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í. |
![]() |
11.2 | 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}##(%%) |
![]() |
6.2 | 66 | [[image:Certificate-script-placeholders.png]] |
![]() |
11.2 | 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. |
![]() |
11.6 | 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}##(%%). |
![]() |
11.10 | 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: |
![]() |
11.9 | 70 | ** Data typu Date (datum, viz [[Datové typy 📖>>doc:Main.Official manuals.Competent - Uživatelská příručka.Slovník.Datové typy.WebHome]]) se vypisují ve formátu (% style="background-color:#bdc3c7" %)##<den>.<mezera><měsíc>.<mezera><rok>##(%%). |
![]() |
14.2 | 71 | ** Data typu DateTime (datm a čas, viz [[Datové typy 📖>>doc:Main.Official manuals.Competent - Uživatelská příručka.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>##(%%). |
![]() |
6.2 | 72 | |
![]() |
11.3 | 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. |
![]() |
11.2 | 74 | |
75 | * activity - objekt [[Aktivita 📖>>doc:Main.Official manuals.Competent - Uživatelská příručka.Slovník.Aktivita.WebHome]] | ||
76 | * user - objekt [[Uživatel 📖>>doc:Main.Official manuals.Competent - Uživatelská příručka.Slovník.Uživatel.WebHome]] | ||
![]() |
11.3 | 77 | * access - [[Přiřazení Aktivity Uživateli (přístup) 📖>>doc:Main.Official manuals.Competent - Uživatelská příručka.Slovník.Přiřazení Aktivity Uživateli (přístup).WebHome]] |
![]() |
16.1 | 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:Main.Official manuals.Competent - Uživatelská příručka.Slovník.Pokusy uživatele.WebHome]] | ||
80 | ** běh aktivity -[[ Termín aktivity 📖>>doc:Main.Official manuals.Competent - Uživatelská příručka.Uživatelské rozhraní.Administrátorské rozhraní.Obrazovka Aktivity.Termín aktivity.WebHome]] | ||
81 | ** běh sady - [[Termín sady 📖>>doc:Main.Official manuals.Competent - Uživatelská příručka.Slovník.Termínová sada.WebHome]] | ||
![]() |
11.2 | 82 | |
![]() |
6.2 | 83 | (% class="box infomessage" %) |
84 | ((( | ||
![]() |
11.2 | 85 | **Parametry** jednotlivých objektů naleznete ve [[Slovníku 📖>>doc:Main.Official manuals.Competent - Uživatelská příručka.Slovník.WebHome]] 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##. |
![]() |
8.1 | 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.*##) |
![]() |
6.2 | 87 | ))) |
![]() |
11.3 | 88 | |
89 | == 2. Zpracování dat skriptem == | ||
90 | |||
![]() |
12.2 | 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ářů. |
![]() |
11.7 | 92 | |
![]() |
12.2 | 93 | [[image:cert_source_vs_output.png]] |