Show last authors
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
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.
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: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ý.
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ých:
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>##(%%).
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>##(%%).
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: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]]
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]]
78
79 (% class="box infomessage" %)
80 (((
81 **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##.
82 **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.*##)
83 )))
84
85 == 2. Zpracování dat skriptem ==
86
87 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//. Můžeme tedy využít základní funkce javascriptu, výpočty a objekty (jako Date). Komentář se skriptem je povinně uveden textem: (% style="background-color:#bdc3c7" %)##/*ZenScript*/;##(%%), kvůli odlišení od jiných typů komentářů.
88
89