merefield
(Robert)
23. Februar 2026 um 21:59
19
Ein weiteres großes Update – ein Online-Burn-up-/Burn-down-Diagramm (als schöne Alternative zur vorhandenen gebündelten Data Explorer -Abfrage)
Es wurde eine neue Workflow-Diagrammansicht in Discovery mit einer gemeinsamen Ansichtsauswahl (Liste / Kanban / Diagramm) und Periodensteuerung (1–12 Wochen) hinzugefügt.
Implementierung der Burn-down-Daten-API unter /discourse-workflow/charts.json plus Integration des /workflow/charts-Routen.
Der Diagrammzugriff wird separat berechtigt: Administratoren und workflow_charts_allowed_groups; das Diagramm wird vor nicht autorisierten Benutzern verborgen.
Die Diagrammnutzlast wurde auf den ausgewählten Workflow-Kontext beschränkt (selected_workflow_id, selected_workflow_name, series), wodurch die nicht verwendete Workflow-Katalogoberfläche entfernt wurde.
Hinzufügung von Anforderungs-/Systemabdeckung und UX-Härtung: Vollwochenfenster, lokal-datumssichere Achsenbeschriftungen, zugängliche Beschriftung der Ansichtsauswahl und Prüfungen auf Diagramm-Rendering-/Zustandsregressionen.
Die Diagrammfunktion sollte mit allen Workflows kompatibel sein:
Das Diagramm erfordert keine Kanban-Kompatibilität, sodass es für Workflows funktioniert, die nicht Kanban-kompatibel sind.
Das Diagramm wird nur angezeigt, wenn die aktuelle Workflow-Liste auf genau einen Workflow beschränkt ist.
Der Benutzer muss über die Diagrammberechtigung verfügen (Admin oder in workflow_charts_allowed_groups).
Wenn Kanban kompatibel ist, zeigt das Dropdown-Menü Liste/Kanban/Diagramm an.
Wenn Kanban nicht kompatibel ist, kann das Dropdown-Menü (wenn die beiden oben genannten Bedingungen erfüllt sind) trotzdem Liste/Diagramm anzeigen.
main ← charts
merged 09:55PM - 23 Feb 26 UTC
## Summary
This PR delivers a workflow discovery UX and reporting expansion… with three integrated workflow views (List, Kanban, Chart), stronger runtime hardening, and broader automated coverage.
It adds charting for workflow step counts over time, improves list/kanban SPA behavior, aligns job loading/naming with Zeitwerk autoloading conventions, and tightens chart mode visibility so only authorized users see
Chart in the workflow view selector.
## Functional Improvements
1. Discovery now supports a unified view selector:
- List (topic table)
- Kanban (actionable board)
- Chart (burn down trend)
- Selector appears contextually based on compatibility/scope.
2. Workflow charts:
- New chart endpoint and UI integration (/workflow/charts and chart mode in /workflow).
- Period selector from 1 to 12 weeks.
- Full-week windows (Sunday to Saturday).
- Per-step series with step/category color mapping.
- Payload now returns selected workflow metadata only (no full workflow catalog).
3. Chart permissions and UX:
- New setting: workflow_charts_allowed_groups.
- Access: admins + configured groups.
- Chart option is hidden from users without chart permission.
- Chart permissioning is intentionally separate from topic-level category permissioning.
4. Workflow quick-filter/SPA behavior:
- Query-param driven transitions without full page reload.
- Persisted quick filters in local storage.
- Better view-state synchronization across route transitions.
- Ongoing list/kanban improvements remain intact (toggle behavior, stale-state refresh handling, overdue/list indicators).
5. Runtime/job reliability:
- Workflow jobs now follow Zeitwerk autoloading conventions.
- Scheduled jobs are visible/reliable without plugin-level manual requires.
- Transition enqueue path updated to new namespaced notifier job.
- WorkflowStat associations corrected to belongs_to for proper relation semantics.
## Technical Changes
- Added: app/controllers/discourse_workflow/workflow_charts_controller.rb
- Added: lib/discourse_workflow/charts_permissions.rb
- Added frontend route wiring for charts:
- assets/javascripts/discourse/discourse-workflow-route-map.js
- assets/javascripts/discourse/routes/discovery/workflow-charts.js
- assets/javascripts/discourse/controllers/discovery/workflow-charts.js
- Added chart connector:
- assets/javascripts/discourse/connectors/discovery-list-container-top/z-workflow-burndown-chart.gjs
- Extended quick filters connector for multi-view behavior and chart gating:
- assets/javascripts/discourse/connectors/discovery-list-container-top/workflow-quick-filters.gjs
- Updated plugin/list serialization and permission flags:
- plugin.rb
- lib/discourse_workflow/list_controller_extension.rb
- Added setting + locale updates:
- config/settings.yml
- config/locales/client.en.yml
- config/locales/server.en.yml
- Updated styles for chart and view controls:
- assets/stylesheets/common/workflow_common.scss
- Updated routes:
- config/routes.rb
- Zeitwerk alignment for jobs:
- moved jobs to namespaced paths:
- app/jobs/scheduled/discourse_workflow/*
- app/jobs/regular/discourse_workflow/*
- renamed classes to Jobs::DiscourseWorkflow::* to match file paths
- removed legacy plugin-level require workaround
- added scheduled-job eager-load wiring in lib/discourse_workflow/engine.rb
## New / Updated Tests
- Request specs:
- spec/requests/workflow_charts_controller_spec.rb
- permissions, routing, week windows, selected-workflow payload contract
- System specs:
- spec/system/workflow_charts_spec.rb
- chart rendering, view switching, period selection
- spec/system/workflow_quick_filters_spec.rb
- chart visibility gating in view selector
- Page objects:
- spec/system/page_objects/pages/workflow_discovery.rb (chart interactions/assertions)
- Job specs:
- spec/jobs/scheduled/discourse_workflow/daily_stats_spec.rb
- spec/jobs/scheduled/discourse_workflow/ai_transitions_spec.rb
- spec/jobs/scheduled/discourse_workflow/data_explorer_queries_completeness_spec.rb
- spec/jobs/regular/discourse_workflow/topic_arrival_notifier_spec.rb
- Fabricator:
- spec/fabricators/workflow_stat_fabricator.rb
## Validation
- Full plugin suite passes:
- bin/rspec plugins/discourse-workflow/spec
- Result: 76 examples, 0 failures
- Targeted request/system/job specs and formatting/rubocop checks pass for touched files.
## Notes
- Chart access model is intentionally broader than topic-level visibility and is controlled by workflow_charts_allowed_groups (plus admin access).
- If stricter chart visibility is desired later, it can be introduced as an optional mode without affecting current behavior.
3 „Gefällt mir“