fix: es werden nun die richtigen Felder beschrieben
This commit is contained in:
1 parent
19dfc06272
commit
56d605c0cb
2 files changed
+23
-17
No files matched your search
@@ -1,9 +1,11 @@
|
||||
[
|
||||
{"source_field": "Antragsnummer", "target_cell": "C2", "format": null},
|
||||
{"source_field": "Name", "target_cell": "C16", "format": null},
|
||||
{"source_field": "Stellenanteil in %", "target_cell": "S16", "format": "%.2f"},
|
||||
{"source_field": "Qualifikation", "target_cell": "C20", "format": null},
|
||||
{"source_field": "Monat (MM.JJ)", "target_cell": "S20", "format": null},
|
||||
{"source_field": "Funktion", "target_cell": "C24", "format": null},
|
||||
{"source_field": "Tätigkeit", "target_cell": "B30", "format": null}
|
||||
{"source_field": "Antragsnummer", "target_cell": "B3", "format": null},
|
||||
{"source_field": "Name", "target_cell": "B17", "format": null},
|
||||
{"source_field": "Stellenanteil in %", "target_cell": "R17", "format": "%.2f"},
|
||||
{"source_field": "Qualifikation", "target_cell": "B21", "format": null},
|
||||
{"source_field": "Monat (MM.JJ)", "target_cell": "R21", "format": null},
|
||||
{"source_field": "Funktion", "target_cell": "B25", "format": null},
|
||||
{"source_field": "Tätigkeit", "target_cell": "B31", "format": null},
|
||||
{"source_field": "Ort", "target_cell": "B95", "format": null},
|
||||
{"source_field": "Datum", "target_cell": "J95", "format": null}
|
||||
]
|
||||
+14
-10
@@ -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:
|
||||
# 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()
|
||||
|
||||
Reference in new issue
Block a user