elterndienstplaner/test/pseudo/create_eingabe_april.py
Jan Hoheisel f0282a9aa9 pseudonymisierste Daten importiert
doppelter Code aus berechne_faire_zielverteilung eliminiert
Max 10 Sekunden Rechenzeit
2025-12-22 21:31:25 +01:00

68 lines
2.2 KiB
Python

#!/usr/bin/env python3
import calendar
from datetime import datetime, date
# Eltern aus der eltern.csv (alle aktiven in April 2026)
eltern = ['En', 'Fe', 'IE', 'IW', 'L', 'Mra', 'P', 'Th', 'V', 'El', 'M&S', 'Ms', 'Ml', 'Mat', 'R', 'Fr']
# April 2026 Kalenderdaten
jahr = 2026
monat = 4
# Deutsche Wochentage
wochentage = ['Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag', 'Sonntag']
# Dienste für Werktage (Mo-Fr)
werktag_dienste = 'FPE'
# Kochen und Elternabend manuell festlegen (beispielhaft)
kochen_tage = [9, 23] # 2 Mittwoche im April
elternabend_tage = [11, 25] # 2 Freitage im April
print("Erstelle eingabe.csv für April 2026...")
# CSV erstellen
with open('eingabe.csv', 'w', encoding='utf-8') as f:
# Header schreiben
header = ['Datum', 'Wochentag', 'Dienste'] + eltern
f.write(', '.join(f'{col:12}' for col in header) + '\n')
# Für jeden Tag im April 2026
for tag in range(1, calendar.monthrange(jahr, monat)[1] + 1):
datum = date(jahr, monat, tag)
wochentag_name = wochentage[datum.weekday()]
# Nur Werktage (Montag bis Freitag)
if datum.weekday() < 5:
# Benötigte Dienste bestimmen
dienste = werktag_dienste
# Kochen hinzufügen
if tag in kochen_tage:
dienste += 'K'
# Elternabend hinzufügen
if tag in elternabend_tage:
dienste += 'A'
# Zeile zusammenstellen
zeile = [
datum.strftime('%Y-%m-%d'),
wochentag_name,
dienste
]
# Für alle Eltern: keine Präferenzen, alle verfügbar (leere Strings)
for eltern_name in eltern:
zeile.append('') # Leer = verfügbar, keine Präferenzen
# Zeile schreiben (formatiert für bessere Lesbarkeit)
f.write(', '.join(f'{cell:12}' for cell in zeile) + '\n')
print("eingabe.csv für April 2026 erstellt!")
print("- Werktage: Frühstück (F), Putz (P), Essensausgabe (E)")
print(f"- Kochen (K): {kochen_tage}")
print(f"- Elternabend (A): {elternabend_tage}")
print("- Alle Eltern verfügbar, keine Präferenzen")