Periodické nastavení

Version 16.1 by Petr Blšťák on 2020/07/12 08:31

Beztermínové aktivity a Sady lze přiřadit uživateli periodicky. V takovém případě se aktivita nebo sada přiřadí uživateli jako při klasickém přiřazení, ale po určité nastavené době, když uživateli tento první přístup vyprší, se automaticky nastaví stejný přístup znovu. To je velice užitečné, pokud například chceme, aby naši zaměstnanci vždy na začátku roku splnili školení BOZP, které máme jako e-learningový kurz. Stačí jim nastavit přístup k tomuto kurzu jednou periodicky a dále se nemusíme o tyto přístupy starat.

Po zaškrtnutí checkboxu Periodické nastavení, případně pokud má aktivita/sada ve svém detailu přednastaveno nějaké opakování, se nám zobrazí zhruba následující:

2020-07-12 14_51_19-Competent.png

V části pro nastavování datumů vyskočí nadpis Nastavení datumů pro aktuání přístup k aktivitě, zaškrtnou se datumy Začátek přístupu  a Vyžadované datum splnění a tyto datumy se také předvyplní, aby odpovídaly aktuálně nastavené periodě a nekolidovaly s ní.    Tato část tedy stále slouží pro nastavení aktuálního přístupu uživatele, tedy toho, který mu bude přidělen ihned po kliknutí na tlačítko Uložit.

Nad checkboxem Periodické nastavení se také objeví nový nápis Nastavení datumů pro budoucí přístupy k aktivitě. Tato sekce tedy slouží k nastavení všech budoucích přístupů k aktivitě/sadě,  tedy těch, které se budou uživateli automaticky vytvářet jakmile současné přiřazení vyprší.   

Obsah této sekce se liší v závislosti na zvoleném typu výpočtu periody. Hlavní prvky jsou:

  • Přístí spuštění - zobrazuje od kdy do kdy bude uživateli přiřazena aktivita/sada v nejbližší další periodě. Tento prvek není dostupný pro Typ výpočtu Od splnění
  • Typ výpočtu - způsob jakým se bude vypočítávat, kdy se přiřadí aktivita/sada uživteli příště.
  • Délka aktivní části - počet dní, který bude mít uživatel na splnění aktivity při všech budoucích přiřazeních.
  • Nastavení opakování / Perioda - samotné nastavení periody které se liší v závislosti na zvoleném Typu výpočtu

V průběhu nastavování je kontrolováno, zda se v rámci datumů současného přiřazení a prvků nastavení periody nevyskytují takové hodnoty, že by nebylo možné nebo logické, nastavení provést. V případě kolize je zobrazena chybová hláška:

2020-07-12 15_50_20-Competent.png

V tomto konkrétním případě nastala chyba, protože v nastavení říkáme, že délka aktivní periody je 7 dní, ovšem perioda samotná má trvat pouze 5 dní. Takové nastavení není možné provést tak, aby mohly platit oba parametry. V tomto stavu také není možné uložit nastavení přiřazení aktivity/sady. Chyba nastavení může nastat i z jiných důvodů, zmíníme si je v rámci konkrétních nastavení, dle Typu výpočtu.

Typ výpočtu Kalendářní

2020-07-12 16_00_33-Competent.png

Kalendářní výpočet je založen na systému CRON, kterým je možné určit přesný časový okamžik, kdy se má provést nějaká akce. Takový okamžik je navíc možné specifikovat způsobem, který podporuje opakování. Příkladem může být: "každých 10 minut", "každý druhý den ve tři hodiny" nebo "každé dva roky, třetí úterý v březnu".

Pro nastavení nejprve vybereme jeden ze 4 horních tabů: Denně, Týdně, Měsíčně nebo Ročně, který určí zhruba jak často chceme opakování provádět. V nastavení tabu samotného pak donastavíme přesné opakování. Například pro zmíněné opakování jednou "každé dva roky, třetí úterý v Březnu":

  • vybereme tab Roční
  • zvolíme druhý řádek, kde navolíme třetí úterý a březen
  • zaškrtneme checkbox pro Opakovat každých X let a nastavíme hodnotu 2.

Každý tab nabízí odlišné možnosti jak specifikovat periodu v závislosti na tom, jaké parametry pro daný časový úsek dávají smysl:

  • Denně
    • nová perioda bude začínat každých X dní v určitou hodinu hodinu (pozor, není myšlen konkrétní den v měsíci, například 12. den)
    • nová perioda bude začínat každý pracovní den v určitou hodinu (pondělí až pátek, státní svátky se neberou v potaz)
  • Týdně - nová perioda bude začínat vždy v některý konkrétní den (případně ve více dnech) v týdnu v určitý čas.
  • Měsíční - perioda bude začínat každých X měsíců v konkrétní den (dny) měsíce v konkrétní hodinu - volba dne je zde možná buď pořadím dne v měsíci nebo specifikací pomocí dní v týdnu (například každá druhé úterý)
  • Roční - perioda bude začínat každých X let v konkrétní měsíc v konkrétní den (dny) měsíce v konkrétní hodinu - volba dne je zde možná buď pořadím dne v měsíci nebo specifikací pomocí dní v týdnu (například každé druhé úterý)

Systém přitom kontroluje, zda je délka periody delší, než nastavená délka aktivní části, pokud ne, nastane chyba.

Také je kontrolováno, zda by příští perioda nezačala dříve, než je nastaveno Vyžadované datum splnění pro aktuální přiřazení. V takovém případě nenastane chyba, ale systém posune Příští spuštění na další naplánovanou periodu. Uvedmě příklad, kdy je momentálně prvního srpna 2020 a přiřazujeme uživateli aktivitu, kterou může plnit od prvního srpna až do 30. září 2020. Dále chceme, aby tuto aktivitu opakoval každý rok od prvního listopadu. V tomto případě nenastává kolize, uživatel splni tuto aktivitu do konce září 2020 a systém mu stejnou aktivitu přiřadí znovu od listopadu 2020. Pokud bychom ale chtěli, aby uživatel opakoval aktivitu vždy od prvního září, nastane kolize, protože by nová perioda začala před koncem současného přiřazení. Systém proto periodu posune a přiřadí aktivitu uživateli příště až na prvního září 2021.

Typ výpočtu Od přiřazení

  

Při nastavování periody máme dvě možnosti výpočtu pro počítání periody: Normální a Školení.

Normální

S-ActivityDetail-user-period-normal.png

Při normálním výpočtu definujeme nejprve délku aktivní části, tedy počet dní kdy bude uživateli aktivita přístupná.

Jako druhý volíme údaj Nastavení opakování, tedy kdy bude nová perioda začínat - k tomu je nám k dispozici grafiké rozhranní CRONu - ten je určitým univerzálním nastavovačem opakovaných akcí. Máme k dispozici 6 tabů určujících hrubou periodu - zvolíme tedy jeden z nich a na něm definujeme kdy přesně bude nová perioda začínat:

  • Minuty - nová perioda bude začínat každých x minut - velice nepoužitelné pro naše potřeby, jelikož těžko bude existovat aktivita, kterou potřebujeme plnit každých 20 minut...
  • Hodinově - nová perioda bude začínat každých X hodin, můžeme případně určit ve kterou minutu přesně - podobně jako minutové nastavení není příliš použitelné.
  • Denně
    • nová perioda bude začínat každých X dní v určitou hodinu hodinu (pozor, není myšlen konkrétní den v měsíci, například 12. den)
    • nová perioda bude začínat každý pracovní den v určitou hodinu (pondělí až pátek, státní svátky se neberou v potaz)
  • Týdně - nová perioda bude začínat vždy v některý konkrétní den (případně ve více dnech) v týdnu v určitý čas.
  • Měsíční - perioda bude začínat každých X měsíců v konkrétní den (dny) měsíce v konkrétní hodinu - volba dne je zde možná buď pořadím dne v měsíci nebo specifikací pomocí dní v týdnu (například každá druhé úterý)
  • Roční - perioda bude začínat každých X let v konkrétní měsíc v konkrétní den (dny) měsíce v konkrétní hodinu - volba dne je zde možná buď pořadím dne v měsíci nebo specifikací pomocí dní v týdnu (například každé druhé úterý)

Školení

Tento typ periodicity se v současné době teprve připravuje.

S-ActivityDetail-user-period-course.png

Tento typ výpočtu je vhodný pro aktivity, jejichž splněnost má určitou trvanlivost, například po jejich splnění uživatel obdrží certifikát na jeden rok, a není vhodné, aby se někdy stalo, že uživatel tento certifikát nebude mít platný.

Délka aktivní části se zde nastavuje stejně jako u Normálního typu výpočtu. Perioda opakování se nastaví jednoduše jako počet dní, měsíců a let po které bude splněnost aktivity trvat. Systém poté dopočítá, kdy příště se začne perioda opakovat a ukáže toho datum jako Příští spuštění. To je vypočítáno jako délka periody mínus délka aktivní části, ve které uživatel aktivitu plní.

Pro příklad, certifikát splněnosti je uživateli udělen na jeden rok, uživatel má vždy jeden měsíc na splnění kurzu. Příští spuštění bude tedy od začátku současné periody za 11 měsíců.

Tags:
Created by Ondřej Steffl on 2020/05/04 22:08