Fix preview filters and button reset on reload
This commit is contained in:
14
web/app.py
14
web/app.py
@@ -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,
|
||||
})
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user