merefield
(Robert)
Fevereiro 23, 2026, 9:59pm
19
Mais uma grande atualização - gráfico de burn-up/down online (como uma boa alternativa à consulta Data Explorer incluída existente)
Adicionada uma nova visualização de Gráfico de fluxo de trabalho (workflow) na descoberta com um seletor de visualização compartilhado (Lista / Kanban / Gráfico) e controle de período (1–12 semanas).
Implementada API de dados de burn-down em /discourse-workflow/charts.json mais integração de rota /workflow/charts.
O acesso ao Gráfico é permitido separadamente: administradores e workflow_charts_allowed_groups; o Gráfico é ocultado de usuários não autorizados.
A carga útil do Gráfico foi otimizada apenas para o contexto de fluxo de trabalho selecionado (selected_workflow_id, selected_workflow_name, series), removendo a superfície de catálogo de fluxo de trabalho não utilizada.
Cobertura de solicitação/sistema adicionada e endurecimento da experiência do usuário (UX): janelas de semana completa, rótulos de eixo seguros para datas locais, rotulagem acessível do seletor de visualização e verificações de regressão de renderização/estado do gráfico.
O recurso de Gráfico deve ser compatível com todos os fluxos de trabalho:
O Gráfico não requer compatibilidade com Kanban, portanto, funciona para fluxos de trabalho que não são compatíveis com Kanban.
O Gráfico aparece somente quando a lista de fluxo de trabalho atual está restrita a exatamente um fluxo de trabalho.
O usuário deve ter permissão para o gráfico (admin ou nos grupos workflow_charts_allowed_groups).
Se for compatível com Kanban, o menu suspenso mostrará Lista/Kanban/Gráfico.
Se não for compatível com Kanban, o menu suspenso ainda pode mostrar Lista/Gráfico (quando as duas condições acima forem atendidas).
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 curtidas