From 26fc81ef11bace7b14014478613b88dc6ae1fc2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Gr=C3=BCssing?= Date: Thu, 11 Jun 2026 11:35:09 +0200 Subject: [PATCH] =?UTF-8?q?Fix:=20Abschlie=C3=9Fen=20blockiert=20wenn=20Ch?= =?UTF-8?q?ecklist-Todos=20noch=20offen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- frontend/src/pages/OnOffboardingPage.jsx | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/frontend/src/pages/OnOffboardingPage.jsx b/frontend/src/pages/OnOffboardingPage.jsx index 4194411..dc292ca 100644 --- a/frontend/src/pages/OnOffboardingPage.jsx +++ b/frontend/src/pages/OnOffboardingPage.jsx @@ -416,6 +416,12 @@ const OnOffboardingPage = () => { }; const completeOn = async () => { + const relevantProcesses = onProcesses.filter(p => !editingOn?.department || p.department_name === editingOn.department); + const unchecked = relevantProcesses.filter(p => !onForm.checklist_data[`proc_${p.id}`]); + if (unchecked.length > 0) { + toast.error(`Noch ${unchecked.length} Aufgabe(n) offen — bitte zuerst alle Punkte abhaken.`); + return; + } try { await onboardingService.update(editingOn.id, { status: 'completed', checklist_data: onForm.checklist_data, notes: onForm.notes, completion_date: today() }); toast.success('Onboarding abgeschlossen!'); @@ -513,6 +519,14 @@ const OnOffboardingPage = () => { }; const completeOff = async () => { + const relevantProcesses = offProcesses.filter((p, i, arr) => + arr.findIndex(x => x.responsible_team === p.responsible_team && x.title === p.title) === i + ); + const unchecked = relevantProcesses.filter(p => !offForm.checklist_data[`proc_${p.id}`]); + if (unchecked.length > 0) { + toast.error(`Noch ${unchecked.length} Aufgabe(n) offen — bitte zuerst alle Punkte abhaken.`); + return; + } try { await offboardingService.update(editingOff.id, { status: 'completed', checklist_data: offForm.checklist_data, notes: offForm.notes, completion_date: today() }); toast.success('Offboarding abgeschlossen!');