Maják
Maják je CMS pro Pirátské weby. Postavený je na Wagtail.
Pod pokličkou
Wagtail a Django jsou poměrně vyspělé frameworky. Vždy mysli na to, že problém co řešíš, už pravděpodobně řešil někdo před tebou. A obvykle existuje elegantní řešení.
Pár užitečných odkazů:
A za zmínku stojí Awesome Wagtail jako přehled pluginů a rozšíření pro Wagtail.
Rozšíření která používáme:
-
wagtail-metadata
- upravený template
shared/templates/wagtailmetadata/parts/tags.html
- upravený template
Struktura projektu
.
├── home = app na web úvodní stránky Majáku
├── donate = app na web dary.pirati.cz
├── senate = app na web senat.pirati.cz
├── senat_campaign = app na weby kandidátů na senátory
├── districts = app na web kraje.pirati.cz
├── region = app na weby krajskych sdruzeni
├── district = app na weby mistnich sdruzeni
├── districts = app na web kraje.pirati.cz
├── program2021 = app na prezentaci programu 2021
├── uniweb = app na univerzalni webove stranky
...
├── majak = Django projekt s konfigurací Majáku
├── shared = app se sdílenými static soubory a templaty pro weby
├── calendar_utils = app s modelem a utilitami na iCal kalendáře
├── search = app pro fulltext search (default, asi se k ničemu nepoužívá)
├── tuning = app na tuning administračního rozhraní Majáku
└── users = app s custom user modelem a SSO, apod.
Kalendáře
Pro práci s kalendáři v iCal formátu je připravena appka calendar_utils
.
Poskytuje CalendarMixin
do modelu, který přidá fieldy calendar_url
pro
editaci a calendar
pro vazbu na model Calendar
(který se plní a automaticky
spravuje na pozadí). Typicky se použije ve Wagtail settings pro web, kde stačí
calendar_url
zpřístupnit pro editaci.
Kalendář se stáhne při uložení modelu obsahujícího CalendarMixin
.
Appka přidává management command update_callendars
, který stahuje a updatuje
kalendáře. Je třeba ho pravidelně volat na pozadí (přes CRON).
Jupyter notebooky
Appka Uniweb umí vložit do stránky Jupyter notebook a zobrazit jeho výstup.
Pokud některé buňky nechceš generovat do výstupní stránky, nastav u nich tag "exclude".