Ist-Stand mit 2 Nachkommastellen formatieren, Dropdown-Anzeige via NeedAppearances korrigieren

This commit is contained in:
Rob committed 2026-03-27 14:51:51 +01:00
1 parent 6a06a5f2a9
commit a1f229a502
3 files changed
+13 -9

No files matched your search

+2 -4
View File
@@ -40,12 +40,10 @@ class AttendanceDate:
return self.status == "X"
def hours_german(self) -> str:
"""Returns hours as a German-formatted string (comma decimal separator)."""
"""Returns hours as a German-formatted string (comma decimal separator, 2 decimal places)."""
if self.hours is None:
return ""
if self.hours == int(self.hours):
return str(int(self.hours))
return str(self.hours).replace(".", ",")
return f"{self.hours:.2f}".replace(".", ",")
@dataclass
+7 -1
View File
@@ -11,7 +11,7 @@ from pathlib import Path
from typing import Any, Dict, Optional
from pypdf import PdfReader, PdfWriter
from pypdf.generic import NameObject, NumberObject
from pypdf.generic import BooleanObject, NameObject, NumberObject
from .config_loader import load_config
from .exceptions import PdfTemplateError
@@ -153,6 +153,12 @@ def fill_pdf(
_update_widget_visibility(writer, fields)
# Tell the PDF viewer to regenerate appearance streams from field values.
# Without this flag, dropdown fields (plan, pauschale) display stale text
# instead of their actual selected option (e.g. "8,60" for pauschale).
if "/AcroForm" in writer._root_object:
writer._root_object["/AcroForm"][NameObject("/NeedAppearances")] = BooleanObject(True)
output_path.parent.mkdir(parents=True, exist_ok=True)
with output_path.open("wb") as fh:
writer.write(fh)