feat(gantt): gantt-diatype — preview, editor en l10n #1246

Merged
brenno merged 4 commits from feat/gantt-slidetype into main 2026-08-04 23:00:52 +00:00
Owner

Summary

Landt het SlideType.gantt-slidetype (issue #1238): een projectschema als Gantt-diagram, opgeslagen als gewone Markdown-tabel, gerenderd via Mermaid.

  • Converter (lib/services/improvement/gantt_dsl.dart): pure-Dart tabel→Mermaid gantt-DSL — id-toewijzing, datum/duur/voortgang, milestones (Milestone:-prefix), FS-afhankelijkheden (after <id>), sectiekoppen (##), auto-as-formaat. De DSL is afgeleid, nooit opgeslagen.
  • Model: SlideType.gantt (backedByTable, Procesverbetering) + ganttScale/ganttSections velden met round-trip via ocideck_gantt_scale: en ocideck_gantt_sections: comments.
  • Editor: hergebruikt de generieke TableEditor met vijf-koloms header-seed (Taak/Start/Duur/Voortgang/Afhankelijk van).
  • Preview: _GanttPreview leidt DSL af en rendert via de bestaande MermaidDiagram-widget.
  • Instellingen: tijdschaal-dropdown (auto/dag/week/maand) + sectiedelingen-toggle.
  • 31 vertalingen voor alle nieuwe l10n-strings.
  • Docs: API_DOCUMENTATION, GLOSSARY, FILE_FORMAT, SOURCE_MAP bijgewerkt.

Bewaker

Deze wijziging raakt het bestandsformaat (nieuw _class token gantt, twee nieuwe comment-directives). De keuze voor tabel-opslag boven DSL-opslag is expliciet: de tabel degradeert leesbaar in plain Marp, de DSL niet. De DSL is afgeleid, nooit de bron van waarheid — consistent met flow's roll-up strip. Geen nieuwe afhankelijkheid (Mermaid is al aanwezig), geen uitgaand verkeer, geen publieke belofte die soevereiniteit of uitwisselbaarheid raakt.

Test plan

  • make check groen (8443 tests, alle poorten: format, analyze, conventions, method-length, dead-code, hardcoded-text, coverage)
  • gantt_dsl_test.dart — 18 unit tests voor de converter
  • slide_type_meta_test.dart — gantt in backedByTable, editor builder, icoon
  • app_localizations_test.dart — alle 31 talen gedekt
  • docs_enum_counts_test.dart — SlideType-count en naam-dekking
  • source_map_coverage_test.dart — gantt_dsl.dart en gantt_preview.dart gedekt
  • Beeldkeuring: visueel controleren van een gantt-dia in de preview en presenteren

Generated with Devin

## Summary Landt het `SlideType.gantt`-slidetype (issue #1238): een projectschema als Gantt-diagram, opgeslagen als gewone Markdown-tabel, gerenderd via Mermaid. - **Converter** (`lib/services/improvement/gantt_dsl.dart`): pure-Dart tabel→Mermaid gantt-DSL — id-toewijzing, datum/duur/voortgang, milestones (`Milestone:`-prefix), FS-afhankelijkheden (`after <id>`), sectiekoppen (`##`), auto-as-formaat. De DSL is afgeleid, nooit opgeslagen. - **Model**: `SlideType.gantt` (backedByTable, Procesverbetering) + `ganttScale`/`ganttSections` velden met round-trip via `ocideck_gantt_scale:` en `ocideck_gantt_sections:` comments. - **Editor**: hergebruikt de generieke `TableEditor` met vijf-koloms header-seed (Taak/Start/Duur/Voortgang/Afhankelijk van). - **Preview**: `_GanttPreview` leidt DSL af en rendert via de bestaande `MermaidDiagram`-widget. - **Instellingen**: tijdschaal-dropdown (auto/dag/week/maand) + sectiedelingen-toggle. - **31 vertalingen** voor alle nieuwe l10n-strings. - **Docs**: API_DOCUMENTATION, GLOSSARY, FILE_FORMAT, SOURCE_MAP bijgewerkt. ## Bewaker Deze wijziging raakt het bestandsformaat (nieuw `_class` token `gantt`, twee nieuwe comment-directives). De keuze voor tabel-opslag boven DSL-opslag is expliciet: de tabel degradeert leesbaar in plain Marp, de DSL niet. De DSL is afgeleid, nooit de bron van waarheid — consistent met flow's roll-up strip. Geen nieuwe afhankelijkheid (Mermaid is al aanwezig), geen uitgaand verkeer, geen publieke belofte die soevereiniteit of uitwisselbaarheid raakt. #### Test plan - [x] `make check` groen (8443 tests, alle poorten: format, analyze, conventions, method-length, dead-code, hardcoded-text, coverage) - [x] `gantt_dsl_test.dart` — 18 unit tests voor de converter - [x] `slide_type_meta_test.dart` — gantt in backedByTable, editor builder, icoon - [x] `app_localizations_test.dart` — alle 31 talen gedekt - [x] `docs_enum_counts_test.dart` — SlideType-count en naam-dekking - [x] `source_map_coverage_test.dart` — gantt_dsl.dart en gantt_preview.dart gedekt - [ ] Beeldkeuring: visueel controleren van een gantt-dia in de preview en presenteren Generated with [Devin](https://devin.ai)
Pure-Dart converter die een gantt-tabel (Slide.tableRows) omzet in
Mermaid gantt-DSL: id-toewijzing, datum/duur/voortgang, milestones,
FS-afhankelijkheden (after <id>), sectiekoppen, en auto-as-formaat.
De DSL is afgeleid en wordt nooit opgeslagen — net als flow's roll-up.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
feat(gantt): gantt-diatype — preview, editor en l10n
Some checks failed
static-gate / static-gate (pull_request) Failing after 1m56s
scans / scans (pull_request) Successful in 2m29s
bb8488104c
Landt het lopende werk aan het gantt-slidetype: de preview-renderer
(lib/widgets/slides/previews/gantt_preview.dart), registratie in de editor/
slide-keten (slide_editor_registry, add_slide_dialog, slide_type_help,
editor_panel_slide_settings, slide_preview, models/slide), de markdown-parsing
en -validatie, de slide-quality-density, en de gantt-strings in alle 31 talen
(+ tool/gantt_l10n_spec.json). macos/Podfile.lock (een losse flutter_webrtc-sync)
bewust NIET meegenomen — die hoort niet bij deze feature.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
brenno force-pushed feat/gantt-slidetype from bb8488104c
Some checks failed
static-gate / static-gate (pull_request) Failing after 1m56s
scans / scans (pull_request) Successful in 2m29s
to 21f27f0457
All checks were successful
scans / scans (pull_request) Successful in 1m31s
static-gate / static-gate (pull_request) Successful in 3m28s
2026-08-04 22:55:56 +00:00
Compare
brenno merged commit ae1042d8e5 into main 2026-08-04 23:00:52 +00:00
Sign in to join this conversation.
No description provided.