## Mše svaté

### Jan 'Koviš' Struhár

1.0.0.18

Abstrakt

Krátký návod pro aplikaci Mše svaté

## Úvod

Primární úkol aplikace je vnést přehled a ulehčení do plánování mší svatých v malých farnostech. Program umožňuje registraci úmyslů pro mše svaté podle požadavků farníků.

Autor zaznamenával intence pro mše svaté po osm let s pomocí předchůdce tohoto programu. Zkušenost, kterou při tom získal, zúročil (doufejme) při tomto druhém vybudování programu od základů.

Mezi hlavní přednosti aplikace patří:

- lepší přehled o mších svatých po celý rok - hlavní obrazovka aplikace připomíná roční kalendář s barevnými políčky znázorňujícími mše svaté

- znovuvyužití intencí - při vytvoření nového záznamu se nabízí výběr ze seznamu intencí, které klient udělal v předchozím roce, úmysly bývají často podobné

- farníci někdy špatně vidí - velká písmena na obrazovce zobrazující detaily mše pomáhají při spolupráci s klientem mše

- mše mohou být zobrazené podle sloužícího kněze nebo kostela, tím se získá přehled o vytížení kněze/kostela ve farnosti

- výstup může být snadno zobrazen na internetu nebo v tabulkovém kalkulátoru

- nejsou problémy s diakritickými znaménky a kódovými stánkami, aplikace používá standard UNICODE

- není třeba konfigurovat databázové spojeni nebo dělat jiné úkoly softwarové administrace

- snadné zálohování, všechna data jsou v jednom souboru

- otevřený programový kód a otevřený, standardní datový formát - data jsou v prostém textovém formátu XML, který může být snadno zkonvertován do jiného formátu

- snadno přeložitelný do jiného jazyku - s nevelkým úsilím může být aplikace rozšířena tak o další jazykovou mutaci

## Uživatelé

Aplikace může pomoci kněžím i laikům, kteří pomáhají při zapisování intencí.

V naší farnosti obvykle jedna osoba zapíše většinu intencí pro přicházející rok během jedné nebo dvou schůzek s farníky ke konci roku. Zbytek intencí se zapisuje průběžně během roku - buďto je píše pověřená osoba nebo sám kněz.

## Požadavky na hardware a software

Požadavky nejsou nijak dramatické - běžné kancelářské PC je naprosto dostačující. Rozlišení obrazovky by mělo být aspoň 1024 x 768, aby se v měsíčních kalendářích neobjevovaly posuvníky.

Je dobré, mít asociovány soubory typu `.xml` s prohlížečem webových stránek, který zvládá tzv. XSLT transformaci - což je jakýkoliv moderní browser jako Mozilla Firefox nebo MS Internet Explorer.

Pokud chcete udělat finální úpravu plánu mší tabulkovým kalkulátorem (tak, jak to dělá náš administrátor farnosti), je praktické asociovat typ souboru `.csv` s Vaším tabulkovým kalkulátorem.

Uživatelé operačních systémů Microsoft mají všechny potřebné komponenty nainstalované instalačním souborem.

U uživatelů Linuxu se předpokládá, že mají nainstalovány knihovny QT (k dostání na webu Nokia Software). Požadovaná verze je minimálně 4.5.0 - tento požadavek je obvykle splněn, pokud je na systému nainstalováno prostředí KDE verze 4.x.

## Rychlý start

1. Poté, co poprvé spustíte aplikaci, nenajde se datový soubor - takže Vás průvodce vyzve k zadání základních údajů - jméno kněze, kostela a jednoho klienta zadávajícího intence. Později všechny tyto údaje můžete měnit a upřesňovat v oknech otevřených příkazy Definice → Kněží... a Definice → Kostely.... Dvojité kliknutí na políčko s údaji zahájí změnu, tlačítkem Přidej <položku> přidáte nové záznamy.

   Poté co zavřete obrazovku s definicemi, změny se promítnou do výběrových polí na příkazové liště (toolbaru). Pokud vyberete filtrování podle konkrétního kostelu nebo kněze, vybraná položka bude předvyplněna při definici nové mše svaté.

2. Definujte klienty mší svatých podobným způsobem jako kněží. Definice klientů není nutná, nicméně je prospěšná v dlouhodobém výhledu.

3. Vyberte v liště rok, pro který chcete definovat mši svatou.

4. Klikněte na den v kalendářovém listu. Pokud buňka dne není zabarvená, není pro daný den (a kněze a kostel) nadefinovaná mše svatá. Přiřaďte nově vytvořené mši kněze, kostel, klienta a úmysl za který bude sloužena, potvrďte tlačítkem OK.

   ### Poznámka

   Políčko se mší svatou nepřiřazenou klientovi má světle modré pozadí. Pokud klient byl přiřazen, pozadí nabude sytějšího odstínu modré. Viz „Co ty barvičky znamenají?“

5. Obvykle musíte udělat nějaký tištěný výstup o plánu mší. Zvolte příkaz Tisk → Tisk (Ctrl-P), vyberte časový rozsah a požadovaný výstupní formát. Výstup bude vytvořen na základě filtru platného pro hlavní obrazovku, tj. pokud máte zobrazené jednom mše pro jeden kostel, ve výtisku budou rovněž jednom mše z vybraného kostela. Prostě tisknete to, co vidíte v hlavní obrazovce.

   Exportované soubory se nacházejí v systémovém `TEMP` adresáři (obvykle `C:\Documents and Settings\<uživatel>\Local Settings\Temp`, `/tmp` na UNIXech). Formát XML je vhodný pro tiskový výstup, protože je zobrazován jako normální webová stránka. Formát CSV může být importován do tabulkových procesorů (OpenCalc, MS Excel). Tam může být výstup upraven podle libosti.

Toto je hrubý přehled, čtěte dál, chcete-li se dozvědět více.

## Vlastnost za vlastností

Jděme dále v popisu vlastností.

### Definice dat

Kněží a kostely jsou základní podmínky pro výběr ze mší.

Při prvním pořizování mší svatých budete muset vytvořit mnoho záznamů o klientech, ale jakmile je vytvoříte (v naší farnosti je okruh farníků zadávajících mše svaté dost stabilní), začnete zúročovat svou předchozí práci. Když vytvoříte novou mši a přidělíte ji klientovi, objeví se výběr z úmyslů, za které dal klient sloužit mši v předchozích případech - tyto úmysly se často opakují. Nemusíte samozřejmě definovat žádné klienty nebo vytvořit jediného zástupného klienta, kterému přiřadíte všechny mše, ale není to předpokládaný a doporučený způsob práce s programem.

Dvojitý klik na buňku tabulky začne editaci dat.

Data jsou seřazena podle prvního sloupce dat abecedně - pokud jej změníte, záznam je znovu zařazen na správné místo, což někdy způsobí, že záznam vám zmizí z pohledu. To je zvlášť patrné při pořízení nového záznamu. Prozatím to považuji víc za vlastnost než za chybu...

### Vytvoření mše svaté

Dvojklikem na prázdné políčko kalendáře vytvoříte mši svatou (respektive záznam o úmyslu na ni). Pokud hodláte založit více záznamů pro jeden den, klikněte na políčko pravým tlačítkem myši a z kontextového menu vyberte položku Vytvořit mši svatou ... a tuto nadefinujte s ohledem na to, aby nekolidovala se stávající mší (mšemi). Všeobecně vzato můžete dělat jakékoliv úpravy (zakládání, změny, mazání) prostřednictvím tohoto kontextového menu - dvojklik provede standardní akci - vytvoří mši, pokud v daném dni žádná není nebo nabídne změnu existujících záznamů.

Možná vás překvapí, že formulář zobrazující detaily úmyslu mše svaté používá nezvykle velké písmo. To usnadňuje vizuální kontrolu klientům s vadou zraku, kteří korigují váš zápis úmyslu pohledem "přes rameno".

Výběr klienta je snadný, začněte psát jeho příjmení.

#### Kolize mší svatých

Dva záznamy jsou považovány za kolizní, pokud jsou přiřazeny stejnému knězi ve stejném kostele v časech, které se byť částečně protínají. Tato definice zohledňuje fakt, že každý z knězů celebrujících mši svatou ji může sloužit s jiným úmyslem. Kolize se testují při vytváření záznamů.

#### Výměna mší svatých

Podle mých zkušeností klienti inklinují ke „kšeftování“ s daty mší svatých. Klient, který přišel později, zjistí, že jeho požadované datum je už obsazené a zkouší přesvědčit svého šťastnějšího bratra nebo sestru v Kristu, aby si s ním datum mše vyměnila (typicky neděle).

Pokud se dohodnou na výměně, zobrazte si detail pro jednu z těchto mší, ujistěte se, že mají být složeny ve stejný čas (třeba od 10:00-11:00) - pokud ne, tak čas upravte, neboť nám jde o vyvolání úmyslné kolize. Stlačte tlačítko Změň datum a upravte datum schválně tak, aby obě mše kolidovaly - výměna mší vám pak bude nabídnuta.

### Co ty barvičky znamenají?

Světloučce modrá barva signalizuje, že políčko obsahuje jen záznam(y), který nebyl dosud přiřazen konkrétnímu klientovi. Sytěji modré políčko znamená, že v daném dni je alespoň jedna obsazená mše.

Tento barevný kód je praktický v malých farnostech jako je ta naše, kde je zpravidla nejvýše jedna mše svatá denně.

Nicméně, výše zmíněná modrá je jen standardní nastavení, příkazem Definice → Podrobná nastavení kostela... můžete vybrat kostel a vybrat barvu pro mše v něm sloužené. Pořád ovšem platí, že obsazené mše mají sytější podbarvení než neobsazené. Když je list výběru na hlavní liště nastavený na Všechny kostely a pro některé dny je více mší, pozadí položky v kalendáři se nastaví na odpovídající barevné proužky.

Na hlavní obrazovce je ještě jedna pestrobarevná položka - názvy měsíců. Jejich barvy nesignalizují nic víc než roční období, ke kterému náleží.

### Indikátor u jména měsíce

Proužek ukazuje procentuální podíl mší přiřazených klientům na celkovém počtu mší v daném měsíci. Důvod pro takový indikátor je takový, že naši kněží chtějí mít v každém měsíci neobsazenou "rezervu", se kterou se ještě dá operativně pracovat.

Vím například, že máme týdně 3 mše svaté. Generátorem mší svatých udělám záznamy, u nichž je vyplněn jen kněz a kostel, ne však klient. Když klient přijde, tak mu řeknu, že světle modrá políčka jsou ještě volná. On si některý den vybere, já mu ho přiřadím, zapíšu úmysl a indikátor „volného místa“ u měsíce je aktualizovaný.

Dává to jistý přehled, pokud tímto způsobem pracujete, totiž že si vytvoříte dopředu neobsazené mše, které postupně obsazujete.

### Filtrování mší

Hlavní účel filtrovacích podmínek je, že umožňují flexibilní dotazy na uložené záznamy. Další efekt je, že filtrování podle konkrétního kněze a/nebo kostelu přednastaví kněze/kostel při vytvoření nového úmyslu na mši svatou.

Přirozeně, pokud vytvoříte mši, která neodpovídá nastavenému filtru (filtr je nastaven, aby zobrazoval mše z kostela „A“ a nová mše je přidělena do kostelu „B“), nová mše není zobrazena na hlavní obrazovce - protože tam nemá co dělat! Nastavte zobrazení, aby ukazovalo kostel „B“ nebo všechny kostely a zase ji uvidíte.

Posledně zvolená filtrační nastavení (kněz, kostel a rok) se uchovávají v systémovém registru (Windows) nebo v konfiguračním souboru (Unix), odkud se načtou při příštím startu programu.

### Generátor mší svatých

Já (a mí klienti taktéž) dávám přednost tomu, vidět všechny příležitosti ke sloužení mše svaté - v naší vsi například máme mši každé pondělí, pátek a neděli. To je ovšem jen hrubý náčrt situace - každý první pátek v měsíci je sloužena mše za obnovu víry v rodinách, každou třetí neděli je v našem kostele mše za farníky (tento úmysl koluje po všech třech kostelech ve farnosti).

To je důvod, proč má generátor první dva režimy. První tvoří mše v pravidelných časových intervalech - každé pondělí (neboli každé první pondělí, abychom se vyjádřili v pojmech generátoru) nebo každou třetí neděli jako v uvedeném příkladu. V principu máme dvě možnosti, jak nastavit nedělní mše.

1. Nejdříve můžeme vytvořit nepřiřazenou mši svatou pro každou neděli v roce a potom si navolit, aby každou třetí neděli byla vytvořena mše pro klienta „všichni farníci“ s úmyslem „za farníky“ NAHRAZUJÍCÍ kolidující mše svaté.

2. Můžu také začít tím, že vytvořím nejdříve každou třetí neděli požadovanou mši s úmyslem "za farníky" a přidat pak volné (rozuměj nepřiřazené klientům) nedělní mše - takže požaduji vytvoření mše pro všechny neděle a PŘESKAKOVAT kolidující mše.

Ostatní nastavení generátoru jsou pro zmíněný druhý úkol - opakování mší svatých každý první pátek, druhé úterý nebo obecně n-tý den v měsíci. Tímto způsobem se vytvoří právě jedna mše svatá v jednom měsíci.

Další možností je nastavení běžného pořadu bohoslužeb pro kostel v Definice → Podrobná nastavení kostela a použití tohoto nastavení v generátoru. Je možné jakkoli kombinovat uvedené postupy.

Stiskni tlačítko Generuj mše jakmile budete hotov s definicí úkolu.

### Varování

Tak jako se všemi generátory, měl byste být opatrný - při troše neopatrnosti si generátorem můžete přepsat mše, které jste pracně zapisoval ručně.

Doporučuji v novém roce vygenerovat mše generátorem a doladit následně detaily ručním přidáním, změnou nebo ubráním záznamů.

### Výstup

Viditelné intence (tj. ty, které prošly nastaveným filtrem) mohou být rovnou vytištěny na tiskárně nebo exportovány do formátu HTML (webová stánka), PDF (Adobe Acrobat), ODF (OpenOffice format), PostScript, CSV, iCal or XML. Je také možné data uložit do schránky ve formátu kompatibilním s Office aplikacemi (OpenOffice, MS Office).

Pro všechny druhy výstupu vyjma iCal nebo XML můžete ovlivnit výběr a pořadí sloupců tlačítkem Výběr sloupců... v tiskovém dialogu. Přetažením sloupců mezi tabulkami s viditelnými a skrytými sloupci si vytvoříte uspořádání výtisku. Uspořádání sloupců je zapamatováno pro další použití na počítači, na kterém jste je vytvořili, nepřenáší se s datovým souborem - což znamená, že na jiném počítači budete mít standardní uspořádání sloupců..

Pokud chcete změnit přímo exportovaný soubor, abyste změnili obsah či formu sestavy, doporučuji Vám měnit soubor formátu HTML. Mnoho dnšních editorů jej umožňuje vizuálně měnit, dokument je pak okamžitě publikovatelný na webových stránkách. Také PDF je na webu často k vidění, ale nedá se snadno měnit.

Můžete také dělat dodatečné změny do CSV exportu (já to dělám, protože využívám podmíněného formátování ke zvýraznění nedělí ve výtisku). CSV obvykle bývá asociován k aplikaci tabulkového procesoru jako OpenOffice Calc nebo MS Excel. CSV je záměrně uložen v lokálním kódování operačního systému - některé z populárních aplikací stále mají problémy s kódováním UTF-8. Jako oddělovač je použit středník `;`, protože čárka je velmi běžná v textech intencí.

Formát iCal je používán širokou paletou časových organizérů a kalendářových aplikací, jako například web GoogleCalendar, IBM LotusNotes, Microsoft Outlook, KOrganizer... Mají funkci, která naimportuje soubor s intencemi, který jste vyexportovali.

XML export obsahuje všechny dostupné informace o mších svatých - může být změněný na webovou stránku transformačním předpisem `defaultReport.xslt`, který je v pracovním adresáři. Pokud jste zběhlý v používání počítačů, můžete si pozměnit `xslt` šablonu podle potřeby - v exportovaném souboru si přitom ověřte použitá jména tagů.

Je vhodné mít XML soubory asociované k webovému prohlížeči schopnému XSLT transformace (Mozilla, Safari, Opera, MSIE) - program zkusí po exportu nový soubor rovnou otevřít. Ale vzhledem k tomu, že je dostupný přímý export do webových stránek, je tato možnost spíše pro experty.

### Automatické uložení

Data jsou automaticky ukládána hned po změně nebo při zavírání aplikace.

Můžete vynutit uložení kdykoliv skrze menu Soubor → Uložit všechno.

### Lokální definice svátků

Svátky daného dne jsou viditelné v bublinové nápovědě políčka kalendáře. Mimo obecné svátky, které jsou vidět vždy (Velikonoční a Vánoční svátky), můžete definovat svátky podle vlastní chuti v obrazovce Definice → Svátky ....

Definice svátků jsou ve složce `<instalační složka>/holidays` specifické pro Váš jazyk - viz `cs_CZ.txt` pro příklad. Pokud se rozhodnete pro přímou změnu souboru, použijte kódování UTF-8.

## Soubory v instalačním adresáři

HolyServices.exe

  Aplikace sama, tento soubor musí být spuštěn, chcete-li používat aplikaci.

holidays/*.txt

  Textové soubory, které obsahují specifické (jazykově a kulturně) svátky. Podle aktuálního jazyka jsou načteny příslušné definice a zobrazeny v bublinové nápovědě buněk kalendáře. Například soubor `holidays/cs_CZ.txt` obsahuje české svátky. Bez obav přidejte své vlastní svátky pro svůj jazyk, jen použijte kódování UTF-8 pro text.

defaultReport.xslt

  Výstupní XML data odkazují na tento soubor šablony, aby byla zobrazena ve webovém prohlížeči jako obyčejná webová (HTML) stránka. Otevřte tento soubor textovým editorem a změňte ho, pokud chcete mít více sloupců, jiné pořadí sloupců nebo jinou změnu v tom, co vidíte ve svém browseru. XSLT šablona je vždy přikopírována k souboru XML exportu.

*.qm

  Překlady uživatelského rozhraní. Aplikace je nativně v angličtině (nebo v tom, co autor považuje za angličtinu).

*.dll

  Programové knihovny potřebné pro aplikaci.

*.xml, *.csv, *.ics, *.html, *.pdf

  To jsou všechny výstupy, které jste kdy udělal. Aplikace nikdy nemaže výstupní soubory, můžete je smazat sám, když už je nepotřebujete (nebo když potřebujete udělat místo na disku). Jméno souboru obvykle začíná časovým razítkem, uvidíte tedy hned, které jsou ty nejstarší výstupy.

untranslated.ts

  Pokud byste chtěli mít aplikaci ve svém vlastním jazyce, neváhejte a přeložte fráze v tomto souboru! Více se dozvíte v „Jak přidat další jazykovou mutaci“.

### Jak přidat další jazykovou mutaci

V instalačním adresáři by měl být soubor `untranslated.ts`. To je pravá surovina pro překlady uživatelského rozhraní, obsahuje všechna menu, hlášení a texty viditelné v programu.

Pokud chcete mít program ve svém vlastním jazyce, otevřete tento soubor v editoru schopném pracovat s kódováním UTF-8 nebo Unicode (Windows Notepad, vim, PSPad) a vpisujte překlady textu uvedeného v elementu `source` mezi tagy `<translation>``</translation>`. Respektujte přitom občasné pokyny pro překladatele mezi tagy `comment`. Ujistěte se, že ukládáte soubor ve formátu UTF-8 nebo Unicode, ne ve své lokální kódové stránce.

Samozřejmě, že pokud jste náhodou vývojář a máte nainstalovaný QT vývojářský balíček (což se může stát zejména uživatelům unixového desktopového prostředí KDE), oddejte se luxusu při překládání v programu k tomu specializovanému - QT Linguist.

Druhá věc, kterou je třeba přeložit, je soubor `defaultReport.xslt`. Přeložte texty pro hlavičku tabulky (popisy sloupců) mezi HTML tagy `TH`.

Pošlete mi, prosím, překlad a já ho zveřejním tak rychle, jak to jen půjde. Odměna vás nemine! Přidám Vaše jméno do souboru credits (= zasloužili se o program), pokud nebudete proti tomu :-)

## Datové soubory

Datové soubory mohou být vytvořeny příkazem Soubor → Nový... (Ctrl-) - průvodce vytvořením souboru Vás provede nezbytnými kroky. Je možné mít více datových souborů, třebaže podle mého názoru většina uživatelů vystačí s jedním souborem, který obsahuje právě jejich farnost.

Vice souborů znamená více omylů a hledání. Doporučujeme mít jeden, hlavní soubor, který je automaticky otvírán při startu aplikace. Pokud neměníte umístění dat, můžete málem zapomenout, že nějaký datový soubor máte - je automaticky otvírán i ukládán.

*.holyservices

  Tento soubor obsahuje všechna data programu. Zálohujte ho pravidelně a máte po starostech se ztrátou dat.

storedHolyServices.dat

  Datový soubor z verzí před 1.0.0.11. Je jenom jinak pojmenován, ale jinak se nijak neliší od běžných datových souborů.

*.archivedHolyServices

  pravidelně zálohované archivní soubory

### Automatická archivace

Datové soubory jsou každý týden zálohovány do přísušně pojmenovaných souborů v adresáři `archive`.

Upřímně Vám přeji, abyste je nikdy nemuseli použít. Ale kdyby toho bylo zapotřebí, použijte funkci Soubor → Vybalit z archívu ... na dekompresi arcivovaného souboru do čitelné formy, kterou můžete hned otevřít.

### Jak přemístit data na jiný počítač

Nainstalujte aplikaci na jiný počítač, překopírujte datový soubor a můžete s ním dále pracovat.

S datovým souborem se NEPŘENÁŠEJÍ nastavení jako posledně otevřené soubory, posledně vybraný kostel/kněz, výběr sloupců pro export. Tato nastavení jsou v systémových registrech na Windows nebo ve skrytých inicializačních souborech na Linuxu.

### Rozhašené kopie datových souborů

Když člověk pracuje s několika kopiemi stejných dat na různých počítačích, snadno pozmění tyto kopie a ztratí přehled o tom, která z nich je ta pravá a směrodatná. Pokud se stane, že máte několik verzí datového souboru jedné farnosti, v jedné jste pozměnil to, v druhé ono, můžete je zcelit dohromady jakýmkoliv textovým editorem, nebo lépe použít specializované nástroje na synchronizaci textů jako diff nebo WinMerge.

## Parametry programu

Program má několik parametrů, se kterými může být spuštěn z příkazové řádky nebo ze zástupce.

--language <zkratka země a jazyka podle ISO>

  vynutí běh aplikace s překlady a nastaveními daného jazyka (například en_US pro angličtinu, de_DE pro němčinu nebo cs_CZ pro češtinu. Standardní instalace podporuje tyto 3 jazyky.

--file <datový souboor>

  otevře daný soubor hned po startu aplikace

--help, -?

  krátký přehled parametrů

## Plány pro další vývoj

Budu více než šťastný, když můžu přidat nový jazykový překlad, který zpřístupní program nové skupině uživatelů.

Pošlete mi popis vlastnosti, kterou byste potřeboval a já uvážím její naprogramování. Tak je to snadné!