{error}
} {task && ( diff --git a/frontend/src/components/kanban/board.js b/frontend/src/components/kanban/board.js index 8b14708..9f6ae67 100644 --- a/frontend/src/components/kanban/board.js +++ b/frontend/src/components/kanban/board.js @@ -27,3 +27,6 @@ export function positionAt(cards, index) { if (after == null) return before + 1; return (before + after) / 2; } + +// Eine Voraussetzung gibt ihre abhängigen Aufgaben frei, sobald sie in einer dieser Spalten steht +export const UNLOCKING = ['wartet', 'erledigt']; diff --git a/frontend/src/pages/KanbanBoard.jsx b/frontend/src/pages/KanbanBoard.jsx index 8ef62d6..f66bd0c 100644 --- a/frontend/src/pages/KanbanBoard.jsx +++ b/frontend/src/pages/KanbanBoard.jsx @@ -116,10 +116,10 @@ export default function KanbanBoard() { if (!drag) return; // Die Karte behält ihre Priorität: einsortiert wird nur zwischen Karten derselben Stufe const moved = data.tasks.find((t) => t.id === drag.id); - // Gesperrt: bleibt in "Offen", bis die Voraussetzungen erledigt sind + // Gesperrt: bleibt in "Offen", bis die Voraussetzungen in "Wartet" oder "Erledigt" stehen if (moved.blocked && status !== 'offen' && moved.status !== status) { setDrag(null); - setError(`„${moved.title}“ ist gesperrt – erst erledigen: ${waitingFor(moved, allTasks).join(', ')}`); + setError(`„${moved.title}“ ist gesperrt – erst auf „Wartet“ oder „Erledigt“ setzen: ${waitingFor(moved, allTasks).join(', ')}`); return; } const cards = byColumn[status].filter((t) => t.id !== drag.id);