fix: es werden nun die richtigen Felder beschrieben
This commit is contained in:
1 parent
19dfc06272
commit
56d605c0cb
2 files changed
+24
-18
No files matched your search
@@ -1,9 +1,11 @@
|
|||||||
[
|
[
|
||||||
{"source_field": "Antragsnummer", "target_cell": "C2", "format": null},
|
{"source_field": "Antragsnummer", "target_cell": "B3", "format": null},
|
||||||
{"source_field": "Name", "target_cell": "C16", "format": null},
|
{"source_field": "Name", "target_cell": "B17", "format": null},
|
||||||
{"source_field": "Stellenanteil in %", "target_cell": "S16", "format": "%.2f"},
|
{"source_field": "Stellenanteil in %", "target_cell": "R17", "format": "%.2f"},
|
||||||
{"source_field": "Qualifikation", "target_cell": "C20", "format": null},
|
{"source_field": "Qualifikation", "target_cell": "B21", "format": null},
|
||||||
{"source_field": "Monat (MM.JJ)", "target_cell": "S20", "format": null},
|
{"source_field": "Monat (MM.JJ)", "target_cell": "R21", "format": null},
|
||||||
{"source_field": "Funktion", "target_cell": "C24", "format": null},
|
{"source_field": "Funktion", "target_cell": "B25", "format": null},
|
||||||
{"source_field": "Tätigkeit", "target_cell": "B30", "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}
|
||||||
]
|
]
|
||||||
+15
-11
@@ -101,7 +101,7 @@ def generate_activity_reports(
|
|||||||
)
|
)
|
||||||
output_path = output_dir / filename
|
output_path = output_dir / filename
|
||||||
|
|
||||||
# Lade Template
|
# Lade Template (bleibt unverändert als Kopiervorlage)
|
||||||
wb = load_workbook(template_path)
|
wb = load_workbook(template_path)
|
||||||
template_sheet = wb.worksheets[0]
|
template_sheet = wb.worksheets[0]
|
||||||
|
|
||||||
@@ -109,18 +109,17 @@ def generate_activity_reports(
|
|||||||
sorted_records = sorted(records, key=lambda r: r.month_index)
|
sorted_records = sorted(records, key=lambda r: r.month_index)
|
||||||
|
|
||||||
for idx, record in enumerate(sorted_records):
|
for idx, record in enumerate(sorted_records):
|
||||||
if idx == 0:
|
# Immer vom sauberen Template kopieren – nie das Original beschreiben
|
||||||
sheet = template_sheet
|
sheet = wb.copy_worksheet(template_sheet)
|
||||||
else:
|
|
||||||
sheet = wb.copy_worksheet(template_sheet)
|
|
||||||
|
|
||||||
# Sheet-Name: Monatsname
|
# Sheet-Name: Monatsname + Funktionskürzel (erste 3 Buchstaben)
|
||||||
month_names = [
|
month_names = [
|
||||||
"", "Januar", "Februar", "März", "April", "Mai", "Juni",
|
"", "Januar", "Februar", "März", "April", "Mai", "Juni",
|
||||||
"Juli", "August", "September", "Oktober", "November", "Dezember"
|
"Juli", "August", "September", "Oktober", "November", "Dezember"
|
||||||
]
|
]
|
||||||
mi = record.month_index
|
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]
|
sheet.title = sheet_name[:31]
|
||||||
|
|
||||||
# Befülle Zielfelder
|
# Befülle Zielfelder
|
||||||
@@ -129,8 +128,6 @@ def generate_activity_reports(
|
|||||||
value = _format_month_for_template(record.monat)
|
value = _format_month_for_template(record.monat)
|
||||||
elif source_field == "Stellenanteil in %":
|
elif source_field == "Stellenanteil in %":
|
||||||
value = record.stellenanteil
|
value = record.stellenanteil
|
||||||
elif hasattr(record, source_field.lower().replace(" ", "_")):
|
|
||||||
value = getattr(record, source_field.lower().replace(" ", "_"))
|
|
||||||
elif source_field == "Name":
|
elif source_field == "Name":
|
||||||
value = employee_name
|
value = employee_name
|
||||||
elif source_field == "Antragsnummer":
|
elif source_field == "Antragsnummer":
|
||||||
@@ -141,15 +138,22 @@ def generate_activity_reports(
|
|||||||
value = record.funktion
|
value = record.funktion
|
||||||
elif source_field == "Tätigkeit":
|
elif source_field == "Tätigkeit":
|
||||||
value = record.taetigkeit
|
value = record.taetigkeit
|
||||||
|
elif source_field == "Ort":
|
||||||
|
value = "Dresden"
|
||||||
|
elif source_field == "Datum":
|
||||||
|
value = date.today().strftime("%d.%m.%Y")
|
||||||
else:
|
else:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
formatted = _format_value(value, m.format)
|
formatted = _format_value(value, m.format)
|
||||||
_set_cell_value(sheet, m.target_cell, formatted)
|
_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")
|
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.save(output_path)
|
||||||
wb.close()
|
wb.close()
|
||||||
|
|||||||
Reference in new issue
Block a user