fix: es werden nun die richtigen Felder beschrieben

This commit is contained in:
trnq1ll0 committed 2026-06-09 09:33:57 +02:00
1 parent 19dfc06272
commit 56d605c0cb
2 files changed
+24 -18

No files matched your search

+15 -11
View File
@@ -101,7 +101,7 @@ def generate_activity_reports(
)
output_path = output_dir / filename
# Lade Template
# Lade Template (bleibt unverändert als Kopiervorlage)
wb = load_workbook(template_path)
template_sheet = wb.worksheets[0]
@@ -109,18 +109,17 @@ def generate_activity_reports(
sorted_records = sorted(records, key=lambda r: r.month_index)
for idx, record in enumerate(sorted_records):
if idx == 0:
sheet = template_sheet
else:
sheet = wb.copy_worksheet(template_sheet)
# Immer vom sauberen Template kopieren – nie das Original beschreiben
sheet = wb.copy_worksheet(template_sheet)
# Sheet-Name: Monatsname
# Sheet-Name: Monatsname + Funktionskürzel (erste 3 Buchstaben)
month_names = [
"", "Januar", "Februar", "März", "April", "Mai", "Juni",
"Juli", "August", "September", "Oktober", "November", "Dezember"
]
mi = record.month_index
sheet_name = f"{mi:02d}_{month_names[mi]}" if 1 <= mi <= 12 else f"Monat_{idx + 1}"
func_abbr = record.funktion[:3] if record.funktion else ""
sheet_name = f"{mi:02d}_{month_names[mi]}_{func_abbr}" if 1 <= mi <= 12 else f"Monat_{idx + 1}"
sheet.title = sheet_name[:31]
# Befülle Zielfelder
@@ -129,8 +128,6 @@ def generate_activity_reports(
value = _format_month_for_template(record.monat)
elif source_field == "Stellenanteil in %":
value = record.stellenanteil
elif hasattr(record, source_field.lower().replace(" ", "_")):
value = getattr(record, source_field.lower().replace(" ", "_"))
elif source_field == "Name":
value = employee_name
elif source_field == "Antragsnummer":
@@ -141,15 +138,22 @@ def generate_activity_reports(
value = record.funktion
elif source_field == "Tätigkeit":
value = record.taetigkeit
elif source_field == "Ort":
value = "Dresden"
elif source_field == "Datum":
value = date.today().strftime("%d.%m.%Y")
else:
continue
formatted = _format_value(value, m.format)
_set_cell_value(sheet, m.target_cell, formatted)
# Setze aktuelles Datum für das Erstelldatum
# Setze aktuelles Datum auch ins Unterschriftsfeld
today = date.today().strftime("%d.%m.%Y")
_set_cell_value(sheet, "K94", today)
_set_cell_value(sheet, "J95", today)
# Entferne das leere Original-Template-Sheet
wb.remove(template_sheet)
wb.save(output_path)
wb.close()