Benjamin Admin
79efa54898
feat(iace): Klaerungen MVP — Phase 1
...
New page "Klaerungen" between Massnahmen and Verifikation.
Backend:
- internal/iace/clarifications.go: Clarification struct + ClarificationAnswer +
BuildProjectClarifications() — aggregates pattern-level + manufacturer-
level questions from collectAllPatterns + GetManufacturerSafetyFeatures.
Deterministic IDs ("pattern:HP1640:0", "manuf:fanuc:dual-check-safety-dcs:1")
so persisted answers survive every re-init.
- internal/api/handlers/iace_handler_clarifications.go:
- GET /projects/:id/clarifications returns aggregated list with affected
hazard names + persisted answer state, sorted (open first).
- POST /projects/:id/clarifications/:cid/answer writes status/answer/
reasoning/answered_by/answered_at to project.metadata.clarification_-
answers — no DB schema change.
Frontend:
- admin-compliance/app/sdk/iace/layout.tsx: new "Klaerungen" nav item.
- app/sdk/iace/[projectId]/clarifications/page.tsx: table grouped by
source (FANUC / Pattern HP1640 / …), Filter Offen/Beantwortet/Alle,
search field, Antwort-Modal with status/answer/Begruendung/Bearbeiter.
A clarification answered once applies to ALL referenced hazards — the
operator no longer has to answer the same FANUC DCS question on 48
mechanical hazards individually.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-17 01:05:53 +02:00
..
2026-05-13 01:02:33 +02:00
2026-05-15 10:03:23 +02:00
2026-05-15 10:08:21 +02:00
2026-05-14 23:10:15 +02:00
2026-05-17 01:05:53 +02:00
2026-02-25 22:27:06 +01:00
2026-02-25 22:27:06 +01:00
2026-04-19 10:03:44 +02:00
2026-03-16 12:50:53 +01:00
2026-04-19 10:03:44 +02:00
2026-05-07 15:07:22 +02:00
2026-05-09 07:25:39 +02:00
2026-05-09 07:25:39 +02:00
2026-05-09 21:32:23 +02:00
2026-05-05 09:29:03 +02:00
2026-05-09 21:32:23 +02:00
2026-05-07 14:23:15 +02:00
2026-05-10 21:23:46 +02:00
2026-05-10 21:23:46 +02:00
2026-04-19 09:29:54 +02:00
2026-04-19 09:29:54 +02:00
2026-04-19 09:29:54 +02:00
2026-05-13 01:02:33 +02:00
2026-03-16 13:15:31 +01:00
2026-05-13 01:02:33 +02:00
2026-03-15 23:13:41 +01:00
2026-05-10 09:15:43 +02:00
2026-05-10 22:24:02 +02:00
2026-05-10 22:24:02 +02:00
2026-05-10 22:24:02 +02:00
2026-05-12 09:45:18 +02:00
2026-05-16 21:11:02 +02:00
2026-05-13 11:41:26 +02:00
2026-04-19 09:35:02 +02:00
2026-04-19 09:35:02 +02:00
2026-04-19 09:35:02 +02:00
2026-04-19 09:29:54 +02:00
2026-04-19 09:29:54 +02:00
2026-04-19 09:29:54 +02:00
2026-04-19 09:29:54 +02:00
2026-04-19 09:35:02 +02:00
2026-04-19 09:35:02 +02:00
2026-04-19 09:35:02 +02:00
2026-03-15 23:13:41 +01:00
2026-04-19 09:35:02 +02:00
2026-05-16 22:23:56 +02:00
2026-05-16 21:11:02 +02:00
2026-05-16 21:11:02 +02:00
2026-05-14 23:04:31 +02:00
2026-05-16 21:11:02 +02:00
2026-05-16 21:11:02 +02:00
2026-05-12 08:50:14 +02:00
2026-05-16 21:11:02 +02:00
2026-05-16 21:11:02 +02:00
2026-05-16 21:11:02 +02:00
2026-05-16 21:11:02 +02:00
2026-05-16 21:11:02 +02:00
2026-05-16 21:11:02 +02:00
2026-05-16 21:11:02 +02:00
2026-05-16 22:00:06 +02:00
2026-05-16 21:11:02 +02:00
2026-05-16 21:11:02 +02:00
2026-05-07 14:05:58 +02:00
2026-05-16 22:00:06 +02:00
2026-05-15 00:05:28 +02:00
2026-05-16 21:11:02 +02:00
2026-05-16 21:11:02 +02:00
2026-05-16 21:11:02 +02:00
2026-05-07 10:53:26 +02:00
2026-05-16 21:11:02 +02:00
2026-05-14 23:04:31 +02:00
2026-05-16 21:11:02 +02:00
2026-05-16 21:11:02 +02:00
2026-05-16 21:11:02 +02:00
2026-05-16 21:11:02 +02:00
2026-05-16 21:11:02 +02:00
2026-05-16 21:11:02 +02:00
2026-05-16 21:11:02 +02:00
2026-05-15 00:01:51 +02:00
2026-05-14 23:04:31 +02:00
2026-05-16 22:56:40 +02:00
2026-05-16 22:34:51 +02:00
2026-05-16 21:11:02 +02:00
2026-05-15 00:05:28 +02:00
2026-05-15 00:01:51 +02:00
2026-03-16 08:50:11 +01:00
2026-05-14 23:04:31 +02:00
2026-05-16 21:11:02 +02:00
2026-05-10 08:52:56 +02:00
2026-05-15 00:01:51 +02:00
2026-05-16 21:11:02 +02:00
2026-05-07 10:53:26 +02:00
2026-03-16 10:22:49 +01:00
2026-05-09 08:30:45 +02:00
2026-05-16 23:04:56 +02:00
2026-05-16 23:04:56 +02:00
2026-05-10 09:15:43 +02:00
2026-05-16 13:08:52 +02:00
2026-05-10 07:07:34 +02:00
2026-05-10 08:43:21 +02:00
2026-05-10 07:07:34 +02:00
2026-05-16 13:08:52 +02:00
2026-05-16 10:12:55 +02:00
2026-05-12 07:20:38 +02:00
2026-05-10 07:07:34 +02:00
2026-05-10 07:07:34 +02:00
2026-05-10 08:52:56 +02:00
2026-05-16 13:08:52 +02:00
2026-05-10 09:15:43 +02:00
2026-05-11 09:04:20 +02:00
2026-05-07 10:53:26 +02:00
2026-05-12 09:15:43 +02:00
2026-05-10 08:05:02 +02:00
2026-05-13 10:19:45 +02:00
2026-05-09 07:58:58 +02:00
2026-05-09 07:58:58 +02:00
2026-05-09 07:58:58 +02:00
2026-05-09 07:58:58 +02:00
2026-05-09 07:58:58 +02:00
2026-05-09 07:58:58 +02:00
2026-05-09 07:58:58 +02:00
2026-05-09 07:58:58 +02:00
2026-05-09 07:58:58 +02:00
2026-05-09 07:58:58 +02:00
2026-05-09 07:58:58 +02:00
2026-05-09 07:58:58 +02:00
2026-05-09 07:58:58 +02:00
2026-05-09 07:58:58 +02:00
2026-05-09 07:58:58 +02:00
2026-05-09 07:58:58 +02:00
2026-05-09 07:58:58 +02:00
2026-05-09 07:58:58 +02:00
2026-05-09 07:58:58 +02:00
2026-05-09 07:58:58 +02:00
2026-05-09 07:58:58 +02:00
2026-05-09 07:58:58 +02:00
2026-05-09 07:58:58 +02:00
2026-05-09 07:58:58 +02:00
2026-05-16 22:00:06 +02:00
2026-05-10 08:22:55 +02:00
2026-05-16 22:23:56 +02:00
2026-05-16 13:08:52 +02:00
2026-05-10 20:55:26 +02:00
2026-05-13 01:02:33 +02:00
2026-05-10 09:15:43 +02:00
2026-05-05 09:29:03 +02:00
2026-05-08 01:49:14 +02:00
2026-04-19 09:35:02 +02:00
2026-05-08 01:02:41 +02:00
2026-04-19 09:35:02 +02:00
2026-05-11 09:17:50 +02:00
2026-05-07 10:53:26 +02:00
2026-05-08 07:03:44 +02:00
2026-05-13 01:02:33 +02:00
2026-04-19 09:29:54 +02:00
2026-03-16 10:22:49 +01:00
2026-05-10 08:43:21 +02:00
2026-03-16 10:22:49 +01:00
2026-05-05 09:29:03 +02:00
2026-04-19 10:03:44 +02:00
2026-04-19 10:03:44 +02:00
2026-05-08 01:02:41 +02:00
2026-03-16 13:15:31 +01:00
2026-04-19 10:03:44 +02:00
2026-03-16 12:50:53 +01:00