Fix preview filters and button reset on reload

This commit is contained in:
2026-03-02 22:18:47 +01:00
parent 9e5127a867
commit 02b005376f
2 changed files with 22 additions and 1 deletions

View File

@@ -58,6 +58,8 @@ def index(request: Request, _: None = Depends(require_auth)):
@app.post("/preview")
async def preview_pdf(
file: UploadFile = File(...),
exclude_rest: bool = Form(False),
exclude_vacation: bool = Form(False),
_: None = Depends(require_auth),
):
filename = file.filename or "dienstplan.pdf"
@@ -86,8 +88,18 @@ async def preview_pdf(
status_code=422,
)
rest_types = ['R56', 'R36', 'vRWF48', 'RWE', 'vR48']
events_preview = []
for event in dienstplan["events"]:
service_type = event["service"]
normalized_service_type = service_type.lstrip('0') or '0'
# Wende Filter an
if exclude_rest and (service_type in rest_types or normalized_service_type == "Ruhe"):
continue
if exclude_vacation and normalized_service_type == "60":
continue
events_preview.append({
"date": event["date"].strftime("%d.%m.%Y") if event["date"] else "",
"service": event["service"] or "",
@@ -101,7 +113,7 @@ async def preview_pdf(
"name": f"{dienstplan.get('vorname', '')} {dienstplan.get('name', '')}".strip(),
"personalnummer": dienstplan.get("personalnummer", ""),
"betriebshof": dienstplan.get("betriebshof", ""),
"count": len(dienstplan["events"]),
"count": len(events_preview),
},
"events": events_preview,
})

View File

@@ -250,6 +250,8 @@
try {
const formData = new FormData();
formData.append("file", currentFile);
formData.append("exclude_rest", document.getElementById("exclude_rest").checked);
formData.append("exclude_vacation", document.getElementById("exclude_vacation").checked);
const response = await fetch("/preview", {
method: "POST",
@@ -350,6 +352,13 @@
hide("step2");
show("step-init");
hide("error");
// Stelle sicher, dass der Button aktiv ist
const btn = document.querySelector("#step-init button");
if (btn) {
btn.disabled = false;
btn.textContent = "Vorschau laden";
}
}
function showError(message) {