Open borazslo opened 1 year ago
Komoly nehezítás, hogy az OSM részéről maximum 255 karakter az elfogadható. Hát nálunk vannak hosszabbak... (Különösen is, ha a nyelv, a milyen, és a megjegyzés mezők is ki vannak töltve.)
/api/v3/service_hours ill. adminok számára a templomok saját oldalán is
Például:
Jun 01-Aug 31: Fr 18:30, Su 10:00,19:00, Mo-Th,Fr[1-3,5],Sa 07:00; Sep 01-May 31: Fr 17:30, Su 10:00,18:00, Mo-Th,Fr[1],Sa 07:00
Eltérések az OSM service_hours-hoz képest:
nyari_idoszamitas, teli_idoszamitas = óraátállítástól óraátállításig tanev, nyariszunet = a tanítás kezdetétől a tanítási nyári szünetig ill. fordítva advent, nagybojt, nagyhet,
Amikor valaki új miserendet hoz létre: 1) Időszak hozzáadása azaz (+) gombra kattintva 1a) Időszak választó, ahol mint egy tag/keyword sorból kiválaszthatja: "egész évben", "nyári időszámítás", "téli időszámítás", "tanév", "nyári szünet", "advent", "karácsony", "nagyböjt", "szent három nap", "szilveszter és újév", "egyéni" 1b) "egyéni" esetén meg kell adja az időhatároló elejét, és megadhatja (opcionális) az időhatároló végét. Mindkettőre kattinva felugrik egy dátum választó (csak hónap és nap, év nélkül), de alatta egyféle tag/keyword sorként kiválasztható pár megadott elem, ami még nincs jól definiálva de inkább tudja a technika mint nem: "pünkösd hétfő", "búcsú"- 1c) az "egyéni" esetén van egy checkbox, hogy "csak adott évben" és ha ki van pipálva, akkor a dátumválasztó év-hónap-nap üzemben működik, és tag/keyword sor eltűnik. = Ha megvan a minimális adat ÉS eltelt 2 mp, akkor szépen összehzza magát a minimumra. Bármire kattinva kitágul.
2) Napok hozzáadása (+) gombra kattintva 2a) Egymás alatt rákattintással kijelöléssel a vasárnap (alapértelmezett), hétfő, kedd, ...., szombat. Minden nap név mellett rögtön ott egy "minden héten" gomb. Ha kijelöli a napot, akkor ez is automatikusan kijelölődik/aktiválódik. 2b) Ha egy kijelölt napnál rákattint a "minden héten"-re akkor deaktiválódik az, és megjelenik pár újabb opció: "páros héten", "páratlan héten", [nagyobb térköz] "első héten", "második héten", ... "ötödik héten", "utolsó héten". Ha az első kupacból valamelyiket aktiválja, akkor minden más deaktiválódik. Ha második kupacból valamelyiket aktiválja akkor az első kupac deaktiválódik. = Ha megvan a minimális adat ÉS eltelt 2 mp, akkor szépen összehzza magát a minimumra. Bármire kattinva kitágul.
3) A misék hozzáadása (+) gombra kattinva 3a) hh:ii formátumú időpont választó. (nem lehet már meglévő időpontot választani) mellette választható tag/keyword sor 3b) Magyarországi templom esetén deaktivált "idegen nyelven", külföldi templom esetén aktivált "magyar nyelven" gomb. Erre kattintva kinyílik a nyelvválasztó ami közül lehet választani egyet (a többi deaktiválódik). Magyarországi misézőhely esetén nincs "magyar nyelven" gomb, ha deaktiválja az idegen nyelvet akkor az elapértelmezett deaktivált "idegen nyelven"-re ugrik vissza. Külföldi templom esetén deaktiválás esetén az ország alapnyelve szerinti megjelölődik kijelölésre. (Nincs lehetőség nyelv nem megadására.) 3c) római katolikus templom esetén default aktivált "római katolikus szentmise" tag, görög esetén "görögkatolikus szent liturgia" tag. Erre rákattintva megjelenik a többi (ami közül egyet lehet választani): "római katolikus szentmise", "r. k. igeliturgia", "görögkatolikus szent liturgia", "gr.k. utrenye", "gr.k. vecsernye", "régi rítusú szentmise". Az egy kiválasztása után fent a kiválaszott jelenik meg, alul szép lassan eltűnik. 3d) egy másik deaktivált elem: "egyéb információ". Erre kattintva megnyílnak további tag/keyword részek: "gitáros", "orgonás", "csendes", "családos/mocorgós", "ifjúsági/egyetemista", "diák". Ezek közül többet is lehet választani. Ez így nem tökéletes a zenei választék és egyéb miatt, de maradjon még így . És a sor végén van egy üres szövegdoboz amibe írhat egyéni infót. Enter esetén szépen megjelnik, hogy "egyéb: amit írt a bácsi". Átírás+enter esetén átíródik. = Ha megvan a minimális adat ÉS eltelt 2 mp, akkor szépen összehzza magát a minimumra. Bármire kattinva kitágul.
Mentéskor optimalizálja magát: 2-es részben a napok összevonásával ha kell (Mo, Tu, We -> Mo-We). Valamint ha több napcsooprt (2) is pont ugyan olyan mise adatokat tartalmaz (3), akkor azokat is összevonja.
Azonos időszakhoz (1) tartozó több napcsoport (2) esetén a misék (3) összeadódnak. Vagyis egy "Mo-Fr 18:00, We 12:00" esetén szerdán 12 órakor ÉS 18 órakor is van mise. Ha nem így szeretnénk, akkor "Mo-Fr 18:00; We 12:00"-t kell megadni. De azt ezen bevivő felületen így nem lehet, csak úgy hogy "Mo-Tu: 18:00, We: 12:00, Th-Fr: 18:00". És ez így jól van.
Különböző időszakok (1) esetén hátulról indulva az első olyan időszak érvényesül csak (!) amibe az adott nap beletartozik.
Az eredmény ilyen egymásba ágyazott világ
<miserend>
<idoszak>
<napok def="Mo-Fr">
<mise time="18:00" lang="angol" liturgy="romai katolikus" />
<mise time="16:00" liturgy="tridentista" comment="De most tényleg van ilyen nálunk"/>
</napok>
<napok def="We[2]">
</napok>
<napok def="Sun">
</napok>
</idoszak>
<idoszak def="advent">
</idoszak>
<idoszak def="12-08">
</idoszak>
</miserend>
De rendesebb stringben lenne jó tárolni, hogy ne legyen olyan hosszú. Vagy legyen így és xmldiff?
Még nem látom magam előtt, hogy miért lesz jobb ha xmlben tároljuk az adatokat.
Nem teljesen muszáj XML-be tárolni. De a mostani tárolás rossz. :D Wikibe meg is írtam a misek tárolási tábláját. Most minden templomhoz egy csomó sor mise tartozik és a minden misénél reddundánsan megadjuk hogy milyen időszakhoz meg ilyenek. Meg hogy melyiket módosítottuk meg mikor és ki. -- Kereséskor jó összetetten kell keresni: group by idoszak, abból kikeresni a jót és akkor jöhetnek a misék. Miserend módosításkor meg csomó sort módosítunk egyetlen este hatos mise átalakítása miatt is. Ráadásul történeti áttekintésben engem az érdekelt hogy mely miserendek változtak és miben, nem pedig soronként hasonlítva.
Megoldás lehet, hogy létrejön szépen a mise_időszakok tábla és abból leszármaznak az egyes misék. Ez már jobb. Kicsit keresésileg is. De azért komplex marad. És azért még mindig nehézkes két teljes miserendet egymással összehasonlítani, hgoy lássuk hogy mi változott.
No, meg tökre sok fura adata van egy-egy misének. És most hogy a misek táblába még tíz oszlopot tenni, ami hol ilyne komibinációba változik hol olyanba... Áh, nem szeretem. Egyszerűen mintha nem ennyire két dimenziós lenne az adat, hanem komplexebb.
Ráadásul mivel szeretném majd az ical formátumú naptárak befűzésének lehetőségét megadni, szóvla ígyis-úgyis le kell gyártani konkrét dátumokra a miséket, hogy az általános miserend leírás az mit jelent konkrét napokban a következő hetekben.
És ez vezetett ahhoz, hogy ha egy-egy templom teljes miserendje egyetlen egy egységként van kezelve (pl. egy nagy string), akkor könnyen hasonlítható össze, akkor egy miserend változáskor egy sor változik, meg ilyenek. És amúgy is, szeretném szinkronizálni legalább a rövid miserendetket az osm-el service_times néven. Meg a az api/service_times is egyben szövegességet igényel (a https://horariosdemisa.com/ -nak szolgáltatunk vele adatot)
Szóval így állt össze benne, hogy adott formátumú string adat az jó lenne. Abból szépen le lehet gyártani scripttel a következő hetek miserendjét, ami már irgalmatlan könnyen lenne kereshető (adott dátum, időpont, jellemzők egy nagy stringben, join templomadatok).
(No meg amikor elkezdjök gyűjteni a szentségimádás iőpontokat, meg a gyónás időpontokat, akkor azok minde egy-egy plusz tábla csak, nem pedig három-négy külön.)
Ilyesmi mozog bennem
Menő lenne az osm.service_times értékeket oda-vissza feldolgozni. Vagyis akár az egész miserend rendszert az OSM opening_hours mintájára kezelni. De legalába miserend.hu miserendjét lehessen az OSM-be betolni. Izgi volna.