[#72661] Consolidates Backlogs routes under /projects/:project_id/backlogs#22791
[#72661] Consolidates Backlogs routes under /projects/:project_id/backlogs#22791
/projects/:project_id/backlogs#22791Conversation
4e2c0b1 to
c3b772b
Compare
There was a problem hiding this comment.
Pull request overview
Consolidates the Backlogs engine routing and controller structure by introducing a /projects/:project_id/backlogs/... namespace, updating controllers/views accordingly, and adjusting specs/components to use the canonical route helpers.
Changes:
- Introduce namespaced Backlogs page controllers (
Backlogs::BacklogController,Backlogs::SprintsController, etc.) and update engine permissions/menu wiring. - Replace legacy Backlogs route usages with new canonical route helpers and add a redirect shim for
/projects/:project_id/backlogs. - Update/extend routing, controller, request, view, component, and feature specs to match the new namespace and params (notably
:sprint_id).
Reviewed changes
Copilot reviewed 39 out of 40 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| modules/backlogs/spec/views/backlogs/burndown_charts/show_spec.rb | Update view spec to match new template path. |
| modules/backlogs/spec/support/pages/backlog.rb | Update page object to use canonical backlog route and wait for Turbo frames. |
| modules/backlogs/spec/routing/rb_taskboards_routing_spec.rb | Update routing expectations for namespaced taskboard route + named route assertion. |
| modules/backlogs/spec/routing/rb_sprints_routing_spec.rb | Update sprints routing to /backlogs/sprints with :sprint_id param + named routes. |
| modules/backlogs/spec/routing/rb_master_backlogs_routing_spec.rb | Update backlog routing to /backlogs/backlog + details under /backlog/details/... + named routes. |
| modules/backlogs/spec/routing/rb_burndown_charts_routing_spec.rb | Update burndown chart routing + named route assertion. |
| modules/backlogs/spec/requests/backlogs/sprints_spec.rb | Add request spec coverage for PUT update via :sprint_id in the new routes. |
| modules/backlogs/spec/requests/backlogs/burndown_charts_spec.rb | Add request spec ensuring namespaced burndown template renders. |
| modules/backlogs/spec/requests/backlogs/backlog_spec.rb | Update request specs to new backlog/show + details routes and templates. |
| modules/backlogs/spec/lib/open_project/backlogs/permissions_spec.rb | Ensure permissions include the new controller/action identifiers. |
| modules/backlogs/spec/lib/open_project/backlogs/engine_spec.rb | Verify project menu entries point to canonical backlog route. |
| modules/backlogs/spec/features/empty_backlogs_spec.rb | Switch feature spec navigation to the Backlog page object. |
| modules/backlogs/spec/features/backlogs/create_spec.rb | Update breadcrumb link expectation to canonical backlog route. |
| modules/backlogs/spec/controllers/backlogs/taskboard_controller_spec.rb | Update controller spec class name and assert controller_path. |
| modules/backlogs/spec/controllers/backlogs/sprints_controller_spec.rb | Update params and action names to update + :sprint_id usage and new redirect paths. |
| modules/backlogs/spec/controllers/backlogs/burndown_charts_controller_spec.rb | Add controller spec for namespaced burndown controller runtime/template. |
| modules/backlogs/spec/controllers/backlogs/backlog_controller_spec.rb | Add controller spec for namespaced backlog controller runtime/template/menu. |
| modules/backlogs/spec/components/backlogs/inbox_item_component_spec.rb | Update split-view URL data attribute to new details route helper. |
| modules/backlogs/lib/open_project/backlogs/engine.rb | Update permissions mapping and project menu URLs to new controllers/actions. |
| modules/backlogs/config/routes.rb | Introduce namespaced Backlogs routes + legacy redirect shim for /projects/:project_id/backlogs. |
| modules/backlogs/app/views/backlogs/burndown_charts/show.html.erb | Update taskboard link helper and partial path; adjust i18n calls. |
| modules/backlogs/app/views/backlogs/burndown_charts/_burndown.html.erb | Add namespaced partial for burndown chart Angular component tag. |
| modules/backlogs/app/views/backlogs/backlog/show.html.erb | Update Turbo frame src and breadcrumb/list URL to canonical backlog route. |
| modules/backlogs/app/views/backlogs/backlog/_backlog_list.html.erb | Update “new sprint” dialog link to new namespaced route helper. |
| modules/backlogs/app/controllers/rb_sprints_controller.rb | Remove legacy non-namespaced sprints controller implementation. |
| modules/backlogs/app/controllers/backlogs/taskboard_controller.rb | Add namespaced taskboard controller redirecting to the board view. |
| modules/backlogs/app/controllers/backlogs/sprints_controller.rb | Add namespaced sprints controller supporting dialog actions + create/update/start/finish. |
| modules/backlogs/app/controllers/backlogs/burndown_charts_controller.rb | Add namespaced burndown charts controller rendering the namespaced template. |
| modules/backlogs/app/controllers/backlogs/backlog_controller.rb | Add namespaced backlog controller handling Turbo frame list + split-view details. |
| modules/backlogs/app/components/backlogs/story_menu_list_component.html.erb | Update “open details” link to canonical details route helper. |
| modules/backlogs/app/components/backlogs/sprint_page_header_component.rb | Update breadcrumb Backlogs link to canonical backlog route helper. |
| modules/backlogs/app/components/backlogs/sprint_menu_component.html.erb | Update edit dialog / taskboard / burndown chart route helpers. |
| modules/backlogs/app/components/backlogs/sprint_header_component.rb | Update start/finish sprint action URLs to namespaced route helpers. |
| modules/backlogs/app/components/backlogs/sprint_component.rb | Update story split-view URL data attribute to canonical details route helper. |
| modules/backlogs/app/components/backlogs/new_sprint_form_component.rb | Update form and refresh URLs to namespaced sprints routes. |
| modules/backlogs/app/components/backlogs/inbox_menu_component.html.erb | Update “open details” link to canonical details route helper. |
| modules/backlogs/app/components/backlogs/inbox_item_component.rb | Update story split-view URL data attribute to canonical details route helper. |
| modules/backlogs/app/components/backlogs/inbox_component.html.erb | Update “show more” link to canonical backlog route helper. |
| modules/backlogs/app/components/backlogs/finish_sprint_dialog_component.html.erb | Update finish URL to namespaced finish route helper. |
| app/seeders/demo_data/references.rb | Update demo data sprint link helper to namespaced taskboard route helper. |
| .codex/environments/environment.toml | Add Codex environment configuration file. |
| .claude/launch.json | Add launch configuration for common dev processes. |
Comments suppressed due to low confidence (3)
modules/backlogs/app/views/backlogs/burndown_charts/show.html.erb:28
- The ERB copyright header terminator is inconsistent with the other Backlogs views: this file now ends the header with
+#%>(note the leading+). Other Backlogs templates use++#%>(e.g.,modules/backlogs/app/views/projects/settings/backlogs/show.html.erb:28). Please restore the standard++#%>terminator here to avoid breaking tooling that relies on the conventional marker.
modules/backlogs/app/views/backlogs/backlog/show.html.erb:28 - The ERB copyright header terminator is inconsistent with other Backlogs templates: it currently ends with
+#%>(leading+). Backlogs views conventionally use++#%>(seemodules/backlogs/app/views/projects/settings/backlogs/show.html.erb:28). Please change this terminator back to++#%>.
modules/backlogs/app/views/backlogs/backlog/_backlog_list.html.erb:28 - The ERB copyright header terminator is
+#%>(leading+), which deviates from the standard marker used elsewhere in Backlogs views (++#%>). Please restore the conventional++#%>terminator to keep headers consistent and avoid issues with license/header parsing.
b24d229 to
712fdbc
Compare
c3b772b to
19c927a
Compare
/projects/:project_id/backlogs
There was a problem hiding this comment.
Pull request overview
This PR consolidates the Backlogs Rails “edge” (routes/controllers/views/specs) under a Backlogs:: namespace and moves all backlogs URLs under /projects/:project_id/backlogs/..., while keeping the internal OpenProject::Backlogs library/API/hooks unchanged.
Changes:
- Renames legacy
rb_*/InboxControllerpage controllers to namespacedBacklogs::*Controllerand updates permissions/menu wiring accordingly. - Reworks Backlogs routes to live under
/projects/:project_id/backlogs/...(including a redirect from/projects/:project_id/backlogs→/backlogs/backlog) and updates route helpers across views/components/specs. - Updates i18n keys for the burndown chart, and adds/relocates routing/controller/request specs to cover the new endpoints.
Reviewed changes
Copilot reviewed 55 out of 56 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| modules/backlogs/spec/views/backlogs/burndown_chart/show_spec.rb | Update view spec template name and i18n key for burndown chart blankslate. |
| modules/backlogs/spec/support/pages/backlog.rb | Update page object paths and add page readiness waits for turbo-frame-based planning page. |
| modules/backlogs/spec/routing/backlogs/taskboard_routing_spec.rb | Update routing spec for namespaced taskboard route + add named route expectation. |
| modules/backlogs/spec/routing/backlogs/stories_routing_spec.rb | Update routing specs for stories menu/move/reorder under new URL prefix/controller. |
| modules/backlogs/spec/routing/backlogs/sprints_routing_spec.rb | Update sprint routing specs for new backlogs-prefixed routes and sprint_id param. |
| modules/backlogs/spec/routing/backlogs/inbox_routing_spec.rb | Update inbox routing specs for new backlogs-prefixed routes/controller. |
| modules/backlogs/spec/routing/backlogs/burndown_chart_routing_spec.rb | Update burndown chart routing spec for new URL/controller + named helper. |
| modules/backlogs/spec/routing/backlogs/backlog_routing_spec.rb | Update backlog routing spec for show/details and add named helper expectations. |
| modules/backlogs/spec/requests/backlogs/sprints_spec.rb | Add request spec validating PUT /backlogs/sprints/:sprint_id updates via sprint_id. |
| modules/backlogs/spec/requests/backlogs/burndown_chart_spec.rb | Add request spec ensuring burndown chart renders under namespaced template. |
| modules/backlogs/spec/requests/backlogs/backlog_spec.rb | Update request spec paths/templates for new backlog show/details routes. |
| modules/backlogs/spec/lib/open_project/backlogs/permissions_spec.rb | Assert permissions reference the new namespaced controller action strings. |
| modules/backlogs/spec/lib/open_project/backlogs/engine_spec.rb | Assert project menu entries point at the canonical namespaced backlog route. |
| modules/backlogs/spec/features/empty_backlogs_spec.rb | Update feature spec to use the Backlog page object and new route. |
| modules/backlogs/spec/features/backlogs/create_spec.rb | Update breadcrumb link expectation to new backlog route helper. |
| modules/backlogs/spec/controllers/backlogs/taskboard_controller_spec.rb | Update controller spec to namespaced controller and validate controller_path. |
| modules/backlogs/spec/controllers/backlogs/stories_controller_spec.rb | Update controller spec to namespaced stories controller. |
| modules/backlogs/spec/controllers/backlogs/sprints_controller_spec.rb | Update controller spec to namespaced sprints controller and sprint_id param usage. |
| modules/backlogs/spec/controllers/backlogs/inbox_controller_spec.rb | Update controller spec to namespaced inbox controller. |
| modules/backlogs/spec/controllers/backlogs/burndown_chart_controller_spec.rb | Add controller spec for namespaced burndown chart controller rendering/runtime. |
| modules/backlogs/spec/controllers/backlogs/backlog_controller_spec.rb | Add controller spec for namespaced backlog controller rendering/menu selection. |
| modules/backlogs/spec/components/backlogs/sprint_component_spec.rb | Update expected drop URL helper for story move endpoint under new prefix. |
| modules/backlogs/spec/components/backlogs/move_to_sprint_dialog_component_spec.rb | Update move path helper for inbox move under new prefix. |
| modules/backlogs/spec/components/backlogs/inbox_item_component_spec.rb | Update split-view details URL helper for inbox items. |
| modules/backlogs/lib/open_project/backlogs/engine.rb | Update permission mappings and project menu URLs to new namespaced controllers/actions. |
| modules/backlogs/config/routes.rb | Introduce new backlogs-prefixed route structure and redirect from /backlogs to /backlogs/backlog. |
| modules/backlogs/config/locales/en.yml | Move burndown chart i18n keys to backlogs.burndown_chart.*. |
| modules/backlogs/app/views/backlogs/burndown_chart/show.html.erb | Update links, partial render path, and i18n lookups for namespaced burndown chart view. |
| modules/backlogs/app/views/backlogs/burndown_chart/_burndown.html.erb | Add namespaced burndown chart partial for Angular chart rendering. |
| modules/backlogs/app/views/backlogs/backlog/show.html.erb | Update route helpers and turbo-frame URLs for canonical backlog show route. |
| modules/backlogs/app/views/backlogs/backlog/_backlog_list.html.erb | Update sprint creation dialog path helper to backlogs-prefixed sprints endpoint. |
| modules/backlogs/app/controllers/rb_stories_controller.rb | Remove legacy RbStoriesController. |
| modules/backlogs/app/controllers/rb_sprints_controller.rb | Remove legacy RbSprintsController. |
| modules/backlogs/app/controllers/inbox_controller.rb | Remove legacy InboxController. |
| modules/backlogs/app/controllers/backlogs/taskboard_controller.rb | Add namespaced taskboard controller redirecting to the project’s task board. |
| modules/backlogs/app/controllers/backlogs/stories_controller.rb | Add namespaced stories controller handling menu/move/reorder via turbo streams. |
| modules/backlogs/app/controllers/backlogs/sprints_controller.rb | Add namespaced sprints controller for dialogs/create/update/start/finish under new routing. |
| modules/backlogs/app/controllers/backlogs/inbox_controller.rb | Add namespaced inbox controller handling menu/move/reorder/dialog via turbo streams. |
| modules/backlogs/app/controllers/backlogs/burndown_chart_controller.rb | Add namespaced burndown chart controller rendering the updated template. |
| modules/backlogs/app/controllers/backlogs/backlog_controller.rb | Add namespaced backlog controller with turbo-frame split rendering and details support. |
| modules/backlogs/app/components/backlogs/story_menu_list_component.rb | Update documentation/comment and reorder URL helper for namespaced stories routes. |
| modules/backlogs/app/components/backlogs/story_menu_list_component.html.erb | Update details link helper to new backlog details route. |
| modules/backlogs/app/components/backlogs/story_component.rb | Update deferred menu src helper to new namespaced stories menu route. |
| modules/backlogs/app/components/backlogs/sprint_page_header_component.rb | Update breadcrumb link helper to canonical backlog route. |
| modules/backlogs/app/components/backlogs/sprint_menu_component.html.erb | Update sprint menu action links to new backlogs-prefixed routes. |
| modules/backlogs/app/components/backlogs/sprint_header_component.rb | Update start/finish button URLs to new backlogs-prefixed sprint routes. |
| modules/backlogs/app/components/backlogs/sprint_component.rb | Update split-view/details and move/drop URLs to new backlogs-prefixed routes. |
| modules/backlogs/app/components/backlogs/new_sprint_form_component.rb | Update create/update/refresh URLs to new backlogs-prefixed sprints routes. |
| modules/backlogs/app/components/backlogs/move_to_sprint_dialog_component.html.erb | Update inbox move form action URL to backlogs-prefixed inbox route. |
| modules/backlogs/app/components/backlogs/inbox_menu_component.rb | Update documentation/comment and reorder URL helper to namespaced inbox route. |
| modules/backlogs/app/components/backlogs/inbox_menu_component.html.erb | Update details and dialog links to new backlogs-prefixed inbox/backlog routes. |
| modules/backlogs/app/components/backlogs/inbox_item_component.rb | Update drop/move URL and split-view details URL to new backlogs-prefixed routes. |
| modules/backlogs/app/components/backlogs/inbox_item_component.html.erb | Update deferred menu src to new namespaced inbox menu route. |
| modules/backlogs/app/components/backlogs/inbox_component.html.erb | Update “show more” link to canonical backlog route helper. |
| modules/backlogs/app/components/backlogs/finish_sprint_dialog_component.html.erb | Update finish sprint form action URL to new backlogs-prefixed sprint finish route. |
| app/seeders/demo_data/references.rb | Update demo data sprint taskboard link helper to new backlogs-prefixed route. |
Comments suppressed due to low confidence (3)
modules/backlogs/app/views/backlogs/backlog/show.html.erb:27
- The copyright header terminator line uses
+#%>here, while other ERB templates in this module use the standard++#%>marker (e.g.,modules/backlogs/app/views/projects/settings/backlogs/show.html.erb:28). To keep tooling/headers consistent, please change this terminator to++#%>.
modules/backlogs/app/views/backlogs/backlog/_backlog_list.html.erb:27 - The copyright header terminator line uses
+#%>here, while other ERB templates in this module use the standard++#%>marker (e.g.,modules/backlogs/app/views/projects/settings/backlogs/show.html.erb:28). To keep tooling/headers consistent, please change this terminator to++#%>.
modules/backlogs/app/views/backlogs/burndown_chart/show.html.erb:27 - The copyright header terminator line uses
+#%>here, while other ERB templates in this module use the standard++#%>marker (e.g.,modules/backlogs/app/views/projects/settings/backlogs/show.html.erb:28). To keep tooling/headers consistent, please change this terminator to++#%>.
f036150 to
d60fa1e
Compare
d60fa1e to
b525f14
Compare
b525f14 to
3a23035
Compare
There was a problem hiding this comment.
Pull request overview
This PR consolidates the Backlogs Rails “edge” into a Backlogs:: controller namespace and moves all Backlogs-related URLs under /projects/:project_id/backlogs/..., updating views/components/seed references and aligning specs with the new routing structure.
Changes:
- Introduces namespaced Backlogs controllers (
Backlog,Sprints,Stories,Inbox,Taskboard,BurndownChart) and updates the Backlogs engine permission mappings/menu URLs accordingly. - Reworks Backlogs routes to live under
/projects/:project_id/backlogs/..., including a redirect from/projects/:project_id/backlogsto/projects/:project_id/backlogs/backlog. - Updates Backlogs views/components/i18n keys and expands routing/request/controller/spec coverage to match the new canonical paths.
Reviewed changes
Copilot reviewed 57 out of 58 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| spec/seeders/demo_data/work_package_seeder_spec.rb | Updates seeded sprint/taskboard link to the new /backlogs/sprints/... path. |
| spec/seeders/demo_data/project_seeder_spec.rb | Updates seeded wiki link to the new taskboard URL under /backlogs/sprints/.... |
| modules/backlogs/spec/views/backlogs/burndown_chart/show_spec.rb | Updates view spec description and i18n lookup key for burndown chart blankslate. |
| modules/backlogs/spec/support/pages/backlog.rb | Updates page object paths and adds extra “page ready” waits for Turbo frames. |
| modules/backlogs/spec/routing/backlogs/taskboard_routing_spec.rb | Updates taskboard routing and adds named route assertions for the new URL prefix. |
| modules/backlogs/spec/routing/backlogs/stories_routing_spec.rb | Updates stories routing specs to the new /backlogs/sprints/:sprint_id/... path. |
| modules/backlogs/spec/routing/backlogs/sprints_routing_spec.rb | Updates sprints routes (incl. update via PUT/PATCH on resource) and adds named route assertions. |
| modules/backlogs/spec/routing/backlogs/inbox_routing_spec.rb | Updates inbox routing specs to /backlogs/inbox/.... |
| modules/backlogs/spec/routing/backlogs/burndown_chart_routing_spec.rb | Updates burndown chart routing and adds named route assertions. |
| modules/backlogs/spec/routing/backlogs/backlog_routing_spec.rb | Updates backlog routing to /backlogs/backlog + adds named route assertions (and removes legacy index routing expectations). |
| modules/backlogs/spec/requests/backlogs/sprints_spec.rb | Adds request coverage for the namespaced sprint update endpoint using sprint_id. |
| modules/backlogs/spec/requests/backlogs/burndown_chart_spec.rb | Adds request coverage to ensure burndown chart renders the namespaced template. |
| modules/backlogs/spec/requests/backlogs/backlog_spec.rb | Updates request specs to use new backlog and details routes + template names. |
| modules/backlogs/spec/lib/open_project/backlogs/permissions_spec.rb | Verifies permissions include new namespaced controller actions and exclude removed ones. |
| modules/backlogs/spec/lib/open_project/backlogs/engine_spec.rb | Verifies project menu entries point to the new canonical backlog route. |
| modules/backlogs/spec/features/empty_backlogs_spec.rb | Updates feature spec to use the Backlog page object for navigation. |
| modules/backlogs/spec/features/backlogs/create_spec.rb | Updates breadcrumb expectation to the new backlog route helper. |
| modules/backlogs/spec/controllers/backlogs/taskboard_controller_spec.rb | Renames controller under Backlogs:: and asserts controller path. |
| modules/backlogs/spec/controllers/backlogs/stories_controller_spec.rb | Renames stories controller spec to Backlogs::StoriesController. |
| modules/backlogs/spec/controllers/backlogs/sprints_controller_spec.rb | Updates controller spec to use sprint_id and update action + new redirect targets. |
| modules/backlogs/spec/controllers/backlogs/inbox_controller_spec.rb | Renames inbox controller spec to Backlogs::InboxController. |
| modules/backlogs/spec/controllers/backlogs/burndown_chart_controller_spec.rb | Adds controller spec coverage for the namespaced burndown chart controller. |
| modules/backlogs/spec/controllers/backlogs/backlog_controller_spec.rb | Adds controller spec coverage for the namespaced backlog controller and menu item selection. |
| modules/backlogs/spec/components/backlogs/sprint_component_spec.rb | Updates drop URL expectation to the new stories move route helper. |
| modules/backlogs/spec/components/backlogs/move_to_sprint_dialog_component_spec.rb | Updates move path helper to new namespaced inbox route. |
| modules/backlogs/spec/components/backlogs/inbox_item_component_spec.rb | Updates split-view URL expectation to the new backlog details helper. |
| modules/backlogs/lib/open_project/backlogs/engine.rb | Updates permission controller/action mappings and project menu URLs to namespaced controllers. |
| modules/backlogs/config/routes.rb | Moves Backlogs routes under /projects/:project_id/backlogs/... and adds redirect for the legacy entrypoint. |
| modules/backlogs/config/locales/en.yml | Moves burndown chart blankslate translations under backlogs.burndown_chart.*. |
| modules/backlogs/app/views/backlogs/burndown_chart/show.html.erb | Updates taskboard link to the new helper under /backlogs/sprints/:sprint_id/taskboard. |
| modules/backlogs/app/views/backlogs/burndown_chart/_burndown.html.erb | Adds (namespaced) burndown chart partial for the Angular component. |
| modules/backlogs/app/views/backlogs/backlog/show.html.erb | Updates split-view/backlog list URLs and breadcrumbs to new canonical route helpers. |
| modules/backlogs/app/views/backlogs/backlog/_backlog_list.html.erb | Updates “new sprint” dialog links to the new /backlogs/sprints/... helpers. |
| modules/backlogs/app/controllers/rb_stories_controller.rb | Removes legacy RbStoriesController in favor of namespaced controller. |
| modules/backlogs/app/controllers/rb_sprints_controller.rb | Removes legacy RbSprintsController in favor of namespaced controller. |
| modules/backlogs/app/controllers/inbox_controller.rb | Removes legacy InboxController in favor of namespaced controller. |
| modules/backlogs/app/controllers/backlogs/taskboard_controller.rb | Introduces Backlogs::TaskboardController (redirects to board view). |
| modules/backlogs/app/controllers/backlogs/stories_controller.rb | Introduces Backlogs::StoriesController (menu/move/reorder) under namespaced routing. |
| modules/backlogs/app/controllers/backlogs/sprints_controller.rb | Introduces Backlogs::SprintsController and collapses bespoke update action into update. |
| modules/backlogs/app/controllers/backlogs/inbox_controller.rb | Introduces Backlogs::InboxController under namespaced routing. |
| modules/backlogs/app/controllers/backlogs/burndown_chart_controller.rb | Introduces Backlogs::BurndownChartController under namespaced routing. |
| modules/backlogs/app/controllers/backlogs/backlog_controller.rb | Introduces Backlogs::BacklogController (show/details) to replace legacy naming. |
| modules/backlogs/app/components/backlogs/story_menu_list_component.rb | Updates reorder URL helper and references namespaced controller in comment. |
| modules/backlogs/app/components/backlogs/story_menu_list_component.html.erb | Updates details (split view) URL helper to new backlog details route. |
| modules/backlogs/app/components/backlogs/story_component.rb | Updates deferred menu src to the new namespaced stories menu route. |
| modules/backlogs/app/components/backlogs/sprint_page_header_component.rb | Updates breadcrumb “Backlogs” link to the new canonical backlog route. |
| modules/backlogs/app/components/backlogs/sprint_menu_component.html.erb | Updates sprint menu links (edit dialog/taskboard/burndown chart) to new helpers. |
| modules/backlogs/app/components/backlogs/sprint_header_component.rb | Updates start/finish sprint links to new namespaced sprint routes. |
| modules/backlogs/app/components/backlogs/sprint_component.rb | Updates story split URL and move/drop URL helpers to the new namespaced routes. |
| modules/backlogs/app/components/backlogs/new_sprint_form_component.rb | Updates form submit/refresh URLs to the new namespaced sprints routes. |
| modules/backlogs/app/components/backlogs/move_to_sprint_dialog_component.html.erb | Updates inbox move form URL to the new namespaced inbox route. |
| modules/backlogs/app/components/backlogs/inbox_menu_component.rb | Updates reorder URL helper and references namespaced controller in comment. |
| modules/backlogs/app/components/backlogs/inbox_menu_component.html.erb | Updates inbox details/move-to-sprint dialog links to new namespaced helpers. |
| modules/backlogs/app/components/backlogs/inbox_item_component.rb | Updates inbox move/drop + split-view URL helpers to new namespaced routes. |
| modules/backlogs/app/components/backlogs/inbox_item_component.html.erb | Updates deferred menu src to new namespaced inbox menu route. |
| modules/backlogs/app/components/backlogs/inbox_component.html.erb | Updates “show more” backlog link to the new canonical backlog route. |
| modules/backlogs/app/components/backlogs/finish_sprint_dialog_component.html.erb | Updates finish sprint form URL to the new namespaced sprint route. |
| app/seeders/demo_data/references.rb | Updates demo “sprint link” URL helper and inline docs to new canonical path. |
Comments suppressed due to low confidence (1)
modules/backlogs/app/controllers/backlogs/burndown_chart_controller.rb:34
- Backlogs::BurndownChartController no longer sets a
menu_item, so the project menu highlighting may be lost when viewing the burndown chart. Consider addingmenu_item :backlogs(consistent with Backlogs::TaskboardController) to keep the Backlogs menu entry active on this page.
| block: true, | ||
| align_content: :start, | ||
| underline: true, | ||
| href: backlog_backlogs_project_backlogs_path(project, all: 1) |
There was a problem hiding this comment.
@EinLama I'm pleased to say that we've got rid of:
backlog_backlogs_project_backlogs_path
| expect(page).to have_css("turbo-frame#backlogs_container", wait: 10) | ||
| expect(page).to have_css("#owner_backlogs_container", wait: 10) | ||
| expect(page).to have_css("#sprint_backlogs_container", wait: 10) | ||
| wait_for_network_idle |
There was a problem hiding this comment.
I don't really like this hack
4436dc7 to
d02622e
Compare
Move the Rails-facing Backlogs page and sprint endpoints under the Backlogs namespace and standardize their route helpers. This renames the legacy `rb_*` page controllers, moves the canonical backlog details route under `/backlogs/backlog`, and updates the touched sprint endpoints to use more conventional controller/action naming. It leaves the deeper `OpenProject::Backlogs` library internals (patches, API endpoints, hooks) untouched so this stays a Rails-edge rename. https://community.openproject.org/wp/72661
Renames the namespaced controller, view directory, and spec files to use the singular `burndown_chart` form, matching the singular URL segment (`sprints/:sprint_id/burndown_chart`) and the sibling `Backlogs::TaskboardController`. The named route helper `project_backlogs_sprint_burndown_chart_path` is unchanged, so no caller updates are required. https://community.openproject.org/wp/72661
Renames the Rails controller layer from stories to work packages. This updates the sprint item routes, permission mapping, and the touched component and spec helper calls without renaming the underlying Story model or service layer.
d02622e to
bb79537
Compare
There was a problem hiding this comment.
Pull request overview
This PR restructures the Backlogs “Rails edge” by moving page controllers into a Backlogs:: namespace and consolidating URLs under /projects/:project_id/backlogs/..., while keeping deeper OpenProject::Backlogs internals unchanged.
Changes:
- Replaces legacy
rb_*/InboxControllerpage controllers with namespacedBacklogs::*controllers and updates permissions/menu wiring accordingly. - Reworks Backlogs routes to live under
/projects/:project_id/backlogs, including a redirect from/projects/:project_id/backlogs→/projects/:project_id/backlogs/backlog. - Updates specs, components, views, and demo-data link generation to use the new path helpers and i18n keys.
Reviewed changes
Copilot reviewed 57 out of 58 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| spec/seeders/demo_data/work_package_seeder_spec.rb | Updates expected sprint taskboard link to the new /backlogs/sprints/... route. |
| spec/seeders/demo_data/project_seeder_spec.rb | Updates expected wiki link expansion to the new Backlogs sprint taskboard route. |
| app/seeders/demo_data/references.rb | Updates sprint reference expansion helper to project_backlogs_sprint_taskboard_path. |
| modules/backlogs/config/routes.rb | Consolidates Backlogs routing under /projects/:project_id/backlogs, adds redirect for /backlogs → /backlogs/backlog, and renames nested resources/segments. |
| modules/backlogs/lib/open_project/backlogs/engine.rb | Updates permission mappings and project menu entries to point at the new namespaced controllers/actions. |
| modules/backlogs/config/locales/en.yml | Moves burndown blankslate strings under backlogs.burndown_chart.show.*. |
| modules/backlogs/app/controllers/rb_stories_controller.rb | Removes legacy controller (replaced by Backlogs::WorkPackagesController). |
| modules/backlogs/app/controllers/rb_sprints_controller.rb | Removes legacy controller (replaced by Backlogs::SprintsController). |
| modules/backlogs/app/controllers/inbox_controller.rb | Removes legacy controller (replaced by Backlogs::InboxController). |
| modules/backlogs/app/controllers/backlogs/backlog_controller.rb | Adds namespaced backlog page controller and updates split-view base route helper. |
| modules/backlogs/app/controllers/backlogs/sprints_controller.rb | Adds namespaced sprints controller and switches the legacy update_agile_sprint action to a conventional update. |
| modules/backlogs/app/controllers/backlogs/work_packages_controller.rb | Adds namespaced controller for sprint “story” item interactions under work_packages. |
| modules/backlogs/app/controllers/backlogs/taskboard_controller.rb | Adds namespaced taskboard controller routing to the work package board. |
| modules/backlogs/app/controllers/backlogs/burndown_chart_controller.rb | Adds namespaced burndown chart controller and renders the new namespaced template path. |
| modules/backlogs/app/controllers/backlogs/inbox_controller.rb | Adds namespaced inbox controller for backlog inbox interactions. |
| modules/backlogs/app/views/backlogs/backlog/show.html.erb | Updates controller data attributes and breadcrumbs to use new backlog route helpers. |
| modules/backlogs/app/views/backlogs/backlog/_backlog_list.html.erb | Updates “new sprint” dialog links to new Backlogs sprints collection routes. |
| modules/backlogs/app/views/backlogs/burndown_chart/show.html.erb | Updates taskboard link helper and renders new burndown partial. |
| modules/backlogs/app/views/backlogs/burndown_chart/_burndown.html.erb | Introduces a dedicated partial for the Angular burndown chart component rendering. |
| modules/backlogs/app/components/backlogs/story_menu_list_component.rb | Updates reorder link to the new work_packages sprint item route helper. |
| modules/backlogs/app/components/backlogs/story_menu_list_component.html.erb | Updates split-view details link helper to new backlog details route. |
| modules/backlogs/app/components/backlogs/story_component.rb | Updates deferred menu src to new work_packages#menu route. |
| modules/backlogs/app/components/backlogs/sprint_page_header_component.rb | Updates breadcrumb backlog link helper. |
| modules/backlogs/app/components/backlogs/sprint_menu_component.html.erb | Updates sprint menu links to new Backlogs routes (edit dialog, taskboard, burndown chart). |
| modules/backlogs/app/components/backlogs/sprint_header_component.rb | Updates start/finish URLs to new Backlogs sprint member routes. |
| modules/backlogs/app/components/backlogs/sprint_component.rb | Updates split-view and drag/drop URLs for sprint items to new route helpers. |
| modules/backlogs/app/components/backlogs/new_sprint_form_component.rb | Updates create/update/refresh URLs to new Backlogs sprints routes. |
| modules/backlogs/app/components/backlogs/move_to_sprint_dialog_component.html.erb | Updates move form action to new Backlogs inbox move route. |
| modules/backlogs/app/components/backlogs/inbox_menu_component.rb | Updates reorder link helper to new Backlogs inbox reorder route. |
| modules/backlogs/app/components/backlogs/inbox_menu_component.html.erb | Updates split-view and move-to-sprint-dialog link helpers to new Backlogs routes. |
| modules/backlogs/app/components/backlogs/inbox_item_component.rb | Updates drop URL and split-view URL to new Backlogs inbox/backlog details routes. |
| modules/backlogs/app/components/backlogs/inbox_item_component.html.erb | Updates deferred menu src to new Backlogs inbox menu route. |
| modules/backlogs/app/components/backlogs/inbox_component.html.erb | Updates “show more” link to new backlog route helper. |
| modules/backlogs/app/components/backlogs/finish_sprint_dialog_component.html.erb | Updates finish sprint form action to new Backlogs finish route. |
| modules/backlogs/spec/views/backlogs/burndown_chart/show_spec.rb | Updates view spec to the new template path and i18n key. |
| modules/backlogs/spec/support/pages/backlog.rb | Updates page object navigation to the new backlog route and adds load/wait synchronization in visit!. |
| modules/backlogs/spec/routing/backlogs/backlog_routing_spec.rb | Updates routing expectations to new controller/actions and adds named-route assertions. |
| modules/backlogs/spec/routing/backlogs/sprints_routing_spec.rb | Updates sprint routing expectations (including update replacing update_agile_sprint) and adds named-route assertions. |
| modules/backlogs/spec/routing/backlogs/work_packages_routing_spec.rb | Updates sprint item routes from stories to work_packages under the new /backlogs prefix. |
| modules/backlogs/spec/routing/backlogs/inbox_routing_spec.rb | Updates inbox routes under /backlogs/inbox/... and the namespaced controller path. |
| modules/backlogs/spec/routing/backlogs/taskboard_routing_spec.rb | Updates taskboard route/controller mapping and adds named-route assertion. |
| modules/backlogs/spec/routing/backlogs/burndown_chart_routing_spec.rb | Updates burndown chart route/controller mapping and adds named-route assertion. |
| modules/backlogs/spec/requests/backlogs/backlog_spec.rb | Updates request specs for new template/partial paths and new details URL prefix. |
| modules/backlogs/spec/requests/backlogs/sprints_spec.rb | Adds request coverage for PUT /backlogs/sprints/:sprint_id hitting #update. |
| modules/backlogs/spec/requests/backlogs/burndown_chart_spec.rb | Adds request coverage for GET burndown chart rendering the namespaced template. |
| modules/backlogs/spec/lib/open_project/backlogs/permissions_spec.rb | Extends permission expectations to include new namespaced controller actions. |
| modules/backlogs/spec/lib/open_project/backlogs/engine_spec.rb | Verifies project menu items point to the new canonical backlog controller/action. |
| modules/backlogs/spec/features/empty_backlogs_spec.rb | Switches feature navigation to the updated backlog page object/route. |
| modules/backlogs/spec/features/backlogs/create_spec.rb | Updates breadcrumbs expectation to the new backlog route helper. |
| modules/backlogs/spec/controllers/backlogs/backlog_controller_spec.rb | Adds controller spec for namespaced backlog #show. |
| modules/backlogs/spec/controllers/backlogs/burndown_chart_controller_spec.rb | Adds controller spec for namespaced burndown chart #show. |
| modules/backlogs/spec/controllers/backlogs/sprints_controller_spec.rb | Updates controller specs for sprint_id param usage and #update action rename. |
| modules/backlogs/spec/controllers/backlogs/taskboard_controller_spec.rb | Updates controller spec to reference namespaced controller and asserts controller path. |
| modules/backlogs/spec/controllers/backlogs/work_packages_controller_spec.rb | Updates controller spec to reference namespaced Backlogs::WorkPackagesController. |
| modules/backlogs/spec/controllers/backlogs/inbox_controller_spec.rb | Updates controller spec to reference namespaced Backlogs::InboxController. |
| modules/backlogs/spec/components/backlogs/sprint_component_spec.rb | Updates expected drag/drop move URL helper to the new work_packages route. |
| modules/backlogs/spec/components/backlogs/move_to_sprint_dialog_component_spec.rb | Updates expected move path helper to new Backlogs inbox move route. |
| modules/backlogs/spec/components/backlogs/inbox_item_component_spec.rb | Updates expected split-view URL helper to new backlog details route. |
ulferts
left a comment
There was a problem hiding this comment.
I only have a single comment about having redirects for taskboard and burndown routes. Other than that, good to merge.
| end | ||
|
|
||
| get "taskboard", to: "taskboard#show", as: :sprint_taskboard | ||
| get "burndown_chart", to: "burndown_chart#show", as: :sprint_burndown_chart |
There was a problem hiding this comment.
The fact that a number of endpoints change their URL (containing backlogs now) is uncritical for most of them since they are not actually user facing. But I would keep a redirect for taskboard and burndown_chart as those might be stored outside of the application. We could then remove them with the next major version as the value of those links will decline with time.
There was a problem hiding this comment.
@ulferts If I recall correctly, then these routes had the /backlogs path segment prior to prior to 17.3. However we can still add a redirect with a note to remove in version 18.0.
Add routing-level redirects for the sprint taskboard and burndown chart paths introduced in version 17.3. Keep them as temporary compatibility shims and mark them for removal in OpenProject 18.
Ticket
https://community.openproject.org/wp/72661
What are you trying to accomplish?
Consolidates the Backlogs Rails edge under a
Backlogs::module namespace and a/projects/:project_id/backlogs/...URL prefix, and renames the legacyrb_*page controllers to conventional Rails names. The deeperOpenProject::Backlogslibrary internals (patches, API endpoints, hooks) are deliberately left untouched.Controllers
RbMasterBacklogsControllerBacklogs::BacklogControllerRbSprintsControllerBacklogs::SprintsControllerRbStoriesControllerBacklogs::WorkPackagesControllerRbTaskboardsControllerBacklogs::TaskboardControllerRbBurndownChartsControllerBacklogs::BurndownChartControllerInboxControllerBacklogs::InboxControllerRoutes
/projects/:project_id/backlogs/projects/:project_id/backlogs→ redirects to/projects/:project_id/backlogs/backlog/projects/:project_id/backlogs/backlog/projects/:project_id/backlogs/backlog/projects/:project_id/backlogs/details/:work_package_id(/:tab)/projects/:project_id/backlogs/backlog/details/:work_package_id(/:tab)/projects/:project_id/sprints{,/new_dialog,/refresh_form}/projects/:project_id/backlogs/sprints{,/new_dialog,/refresh_form}/projects/:project_id/sprints/:id/{update_agile_sprint,start,finish,edit_dialog}/projects/:project_id/backlogs/sprints/:sprint_id{,/start,/finish,/edit_dialog}/projects/:project_id/sprints/:sprint_id/stories/:id/{menu,move,reorder}/projects/:project_id/backlogs/sprints/:sprint_id/work_packages/:id/{menu,move,reorder}/projects/:project_id/sprints/:sprint_id/{taskboard,burndown_chart}/projects/:project_id/backlogs/sprints/:sprint_id/{taskboard,burndown_chart}/projects/:project_id/inbox/:id/{menu,move,reorder,move_to_sprint_dialog}/projects/:project_id/backlogs/inbox/:id/{menu,move,reorder,move_to_sprint_dialog}Action names are unchanged unless explicitly renamed. The only controller action cleanup in this PR is
update_agile_sprintbecoming the conventionalupdateon the sprint resource.What approach did you choose and why?
This is a Rails-edge rename — controllers, views, routes, and their specs. Internal Turbo paths only, so no redirect shims are added for the old
/sprints/...and/inbox/...URLs.Additional follow-up polish landed alongside the rename:
params[:id]fallback inBacklogs::SprintsController(the sprints resource declaresparam: :sprint_id, so onlyparams[:sprint_id]ever reaches the controller).rb_burndown_charts.*i18n keys underbacklogs.burndown_chart.*in the sourceen.ymlonly; Crowdin locale files are regenerated and are not touched here.spec/routing/backlogs/and renamed them to match the new controllers.Backlogs::BurndownChartController(separate commit). The URL segment is already singular, the siblingBacklogs::TaskboardControlleris singular, and theproject_backlogs_sprint_burndown_chart_pathhelper name is unchanged — so no caller updates were needed.storiestowork_packages, while intentionally leavingStorymodel/service/component names untouched in this PR.Merge checklist