Små Python-skript för att skapa PDF-listor från en CSV-export från Hourglass.
Projektet innehåller:
- Adresslista - skapar en svensk adresslista grupperad per grupptillsyningsman.
- Namnlista - skapar en namnlista grupperad per familj.
- Röstlängd - skapar en lista över döpta aktiva personer med kryssrutor för närvaro.
- Tjänstegrupper - skapar en fyrkolumnslista över aktiva personer grupperade per tjänstegrupp.
Klona repot och gå in i projektmappen:
git clone git@github.com:bjorkgard/hourglass-scripts.git
cd hourglass-scriptsSkapa gärna en virtuell Python-miljö:
python3 -m venv .venv
source .venv/bin/activateInstallera beroenden:
python3 -m pip install reportlabLäs respektive skriptdokumentation för hur skripten körs och vilka fält som behövs i CSV-filen.
Lägg CSV-exporten från Hourglass i in/ och kör:
python3 create_all.pyPDF-filerna skapas i out/.
Samtidigt skapas en TXT-rapport, Rapport_ÅÅÅÅ-MM-DD.txt, som jämför
kontaktuppgifterna med senaste körningen och visar nya, uppdaterade och
borttagna namn. Jämförelsen använder fullname + birth som personnyckel,
där saknat födelsedatum räknas som 0.
Den lokala historiken sparas i history/contact_history.json och ignoreras av
git.
Första gången frågar kommandot efter de uppgifter som behövs för adresslistan
och tjänstegrupperna och sparar dem i en lokal config.json. Tjänstegrupperna
använder samma gruppordning som adresslistan. Nästa gång används config-filen
automatiskt. Om du vill skapa om config-filen kör du:
python3 create_all.py --reconfigureOm in/ innehåller flera CSV-filer frågar kommandot vilken som ska användas.
När du kör adresslistan direkt med create_address_list.py skapas samma typ av
rapport bredvid PDF-filen.
Kör alla tester:
python3 -m unittest discoverVissa integrationstester använder example_csv/hourglass-contactlist.csv om den
finns lokalt. Mappen example_csv/ ignoreras av git eftersom den kan innehålla
personuppgifter.
Bidrag är välkomna. Håll ändringar små och fokuserade:
- Skapa eller uppdatera tester för ändringen.
- Kör
python3 -m unittest discover. - Kontrollera att inga CSV-filer, PDF:er, cachefiler eller lokala miljöfiler
följer med i
git status. - Skriv en kort commit som beskriver ändringen.