From 73fbb7fc8a93cdb8c46b947b706a24343e0adedd Mon Sep 17 00:00:00 2001 From: Ivan Kuchin Date: Fri, 29 May 2026 17:31:40 +0200 Subject: [PATCH 1/3] namespace contracts and services to be under Backlogs --- .../app/components/backlogs/sprint_component.rb | 4 ++-- .../backlog_buckets/base_contract.rb | 2 +- .../backlog_buckets/create_contract.rb | 2 +- .../backlog_buckets/delete_contract.rb | 2 +- .../backlog_buckets/update_contract.rb | 2 +- .../projects/backlog_settings_contract.rb | 2 +- .../backlogs_types_and_statuses_contract.rb | 2 +- .../{ => backlogs}/sprints/base_contract.rb | 2 +- .../{ => backlogs}/sprints/create_contract.rb | 2 +- .../{ => backlogs}/sprints/finish_contract.rb | 2 +- .../{ => backlogs}/sprints/start_contract.rb | 2 +- .../{ => backlogs}/sprints/update_contract.rb | 2 +- .../move_between_sprints_contract.rb | 2 +- .../work_packages/move_to_backlog_contract.rb | 2 +- .../backlogs/backlog_buckets_controller.rb | 6 +++--- .../controllers/backlogs/backlog_controller.rb | 2 +- .../controllers/backlogs/sprints_controller.rb | 16 ++++++++-------- .../backlogs/work_packages_controller.rb | 2 +- .../settings/backlog_sharings_controller.rb | 2 +- .../projects/settings/backlogs_controller.rb | 4 ++-- .../backlog_buckets/create_service.rb | 2 +- .../backlog_buckets/delete_service.rb | 6 +++--- .../backlog_buckets/set_attributes_service.rb | 2 +- .../backlog_buckets/update_service.rb | 2 +- .../{ => backlogs}/sprints/create_service.rb | 2 +- .../{ => backlogs}/sprints/finish_service.rb | 12 ++++++------ .../sprints/set_attributes_service.rb | 2 +- .../{ => backlogs}/sprints/start_service.rb | 4 ++-- .../{ => backlogs}/sprints/update_service.rb | 2 +- .../{ => backlogs}/stories/update_service.rb | 4 ++-- .../work_packages/rebuild_positions_service.rb | 2 +- .../backlog_buckets/create_contract_spec.rb | 2 +- .../backlog_buckets/delete_contract_spec.rb | 2 +- .../backlog_buckets/shared_contract_examples.rb | 0 .../backlog_buckets/update_contract_spec.rb | 2 +- .../projects/backlog_settings_contract_spec.rb | 2 +- .../backlogs_types_and_statuses_contract_spec.rb | 2 +- .../sprints/create_contract_spec.rb | 2 +- .../sprints/finish_contract_spec.rb | 2 +- .../sprints/shared_contract_examples.rb | 0 .../sprints/start_contract_spec.rb | 2 +- .../sprints/update_contract_spec.rb | 2 +- .../backlogs/sprints_controller_spec.rb | 8 ++++---- .../backlogs/work_packages_controller_spec.rb | 8 ++++---- .../settings/backlog_sharings_controller_spec.rb | 2 +- .../settings/backlogs_controller_spec.rb | 2 +- .../backlog_buckets/create_service_spec.rb | 2 +- .../backlog_buckets/delete_service_spec.rb | 2 +- .../set_attributes_service_spec.rb | 4 ++-- .../backlog_buckets/update_service_spec.rb | 2 +- .../sprints/create_service_spec.rb | 2 +- .../sprints/finish_service_spec.rb | 2 +- .../sprints/set_attributes_service_spec.rb | 4 ++-- .../{ => backlogs}/sprints/start_service_spec.rb | 2 +- .../stories/update_service_spec.rb | 2 +- ...rebuild_positions_service_integration_spec.rb | 2 +- 56 files changed, 82 insertions(+), 82 deletions(-) rename modules/backlogs/app/contracts/{ => backlogs}/backlog_buckets/base_contract.rb (96%) rename modules/backlogs/app/contracts/{ => backlogs}/backlog_buckets/create_contract.rb (97%) rename modules/backlogs/app/contracts/{ => backlogs}/backlog_buckets/delete_contract.rb (97%) rename modules/backlogs/app/contracts/{ => backlogs}/backlog_buckets/update_contract.rb (97%) rename modules/backlogs/app/contracts/{ => backlogs}/projects/backlog_settings_contract.rb (99%) rename modules/backlogs/app/contracts/{ => backlogs}/projects/backlogs_types_and_statuses_contract.rb (98%) rename modules/backlogs/app/contracts/{ => backlogs}/sprints/base_contract.rb (98%) rename modules/backlogs/app/contracts/{ => backlogs}/sprints/create_contract.rb (98%) rename modules/backlogs/app/contracts/{ => backlogs}/sprints/finish_contract.rb (98%) rename modules/backlogs/app/contracts/{ => backlogs}/sprints/start_contract.rb (98%) rename modules/backlogs/app/contracts/{ => backlogs}/sprints/update_contract.rb (98%) rename modules/backlogs/app/contracts/{ => backlogs}/work_packages/move_between_sprints_contract.rb (98%) rename modules/backlogs/app/contracts/{ => backlogs}/work_packages/move_to_backlog_contract.rb (98%) rename modules/backlogs/app/services/{ => backlogs}/backlog_buckets/create_service.rb (94%) rename modules/backlogs/app/services/{ => backlogs}/backlog_buckets/delete_service.rb (88%) rename modules/backlogs/app/services/{ => backlogs}/backlog_buckets/set_attributes_service.rb (93%) rename modules/backlogs/app/services/{ => backlogs}/backlog_buckets/update_service.rb (94%) rename modules/backlogs/app/services/{ => backlogs}/sprints/create_service.rb (95%) rename modules/backlogs/app/services/{ => backlogs}/sprints/finish_service.rb (87%) rename modules/backlogs/app/services/{ => backlogs}/sprints/set_attributes_service.rb (99%) rename modules/backlogs/app/services/{ => backlogs}/sprints/start_service.rb (93%) rename modules/backlogs/app/services/{ => backlogs}/sprints/update_service.rb (95%) rename modules/backlogs/app/services/{ => backlogs}/stories/update_service.rb (95%) rename modules/backlogs/app/services/{ => backlogs}/work_packages/rebuild_positions_service.rb (97%) rename modules/backlogs/spec/contracts/{ => backlogs}/backlog_buckets/create_contract_spec.rb (95%) rename modules/backlogs/spec/contracts/{ => backlogs}/backlog_buckets/delete_contract_spec.rb (97%) rename modules/backlogs/spec/contracts/{ => backlogs}/backlog_buckets/shared_contract_examples.rb (100%) rename modules/backlogs/spec/contracts/{ => backlogs}/backlog_buckets/update_contract_spec.rb (96%) rename modules/backlogs/spec/contracts/{ => backlogs}/projects/backlog_settings_contract_spec.rb (98%) rename modules/backlogs/spec/contracts/{ => backlogs}/projects/backlogs_types_and_statuses_contract_spec.rb (97%) rename modules/backlogs/spec/contracts/{ => backlogs}/sprints/create_contract_spec.rb (97%) rename modules/backlogs/spec/contracts/{ => backlogs}/sprints/finish_contract_spec.rb (98%) rename modules/backlogs/spec/contracts/{ => backlogs}/sprints/shared_contract_examples.rb (100%) rename modules/backlogs/spec/contracts/{ => backlogs}/sprints/start_contract_spec.rb (98%) rename modules/backlogs/spec/contracts/{ => backlogs}/sprints/update_contract_spec.rb (96%) rename modules/backlogs/spec/services/{ => backlogs}/backlog_buckets/create_service_spec.rb (95%) rename modules/backlogs/spec/services/{ => backlogs}/backlog_buckets/delete_service_spec.rb (97%) rename modules/backlogs/spec/services/{ => backlogs}/backlog_buckets/set_attributes_service_spec.rb (95%) rename modules/backlogs/spec/services/{ => backlogs}/backlog_buckets/update_service_spec.rb (95%) rename modules/backlogs/spec/services/{ => backlogs}/sprints/create_service_spec.rb (95%) rename modules/backlogs/spec/services/{ => backlogs}/sprints/finish_service_spec.rb (99%) rename modules/backlogs/spec/services/{ => backlogs}/sprints/set_attributes_service_spec.rb (98%) rename modules/backlogs/spec/services/{ => backlogs}/sprints/start_service_spec.rb (99%) rename modules/backlogs/spec/services/{ => backlogs}/stories/update_service_spec.rb (99%) rename modules/backlogs/spec/services/{ => backlogs}/work_packages/rebuild_positions_service_integration_spec.rb (99%) diff --git a/modules/backlogs/app/components/backlogs/sprint_component.rb b/modules/backlogs/app/components/backlogs/sprint_component.rb index 7a793ce6fbff..b6383e86d7f4 100644 --- a/modules/backlogs/app/components/backlogs/sprint_component.rb +++ b/modules/backlogs/app/components/backlogs/sprint_component.rb @@ -57,11 +57,11 @@ def wrapper_uniq_by private def show_start_sprint_action? - sprint.in_planning? && ::Sprints::StartContract.can_start?(user: current_user, sprint:, project:) + sprint.in_planning? && ::Backlogs::Sprints::StartContract.can_start?(user: current_user, sprint:, project:) end def show_finish_sprint_action? - sprint.active? && ::Sprints::StartContract.can_start_or_complete?(user: current_user, sprint:) + sprint.active? && ::Backlogs::Sprints::StartContract.can_start_or_complete?(user: current_user, sprint:) end def disable_start_sprint_action? diff --git a/modules/backlogs/app/contracts/backlog_buckets/base_contract.rb b/modules/backlogs/app/contracts/backlogs/backlog_buckets/base_contract.rb similarity index 96% rename from modules/backlogs/app/contracts/backlog_buckets/base_contract.rb rename to modules/backlogs/app/contracts/backlogs/backlog_buckets/base_contract.rb index d006b91ecc36..633684732366 100644 --- a/modules/backlogs/app/contracts/backlog_buckets/base_contract.rb +++ b/modules/backlogs/app/contracts/backlogs/backlog_buckets/base_contract.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -class BacklogBuckets::BaseContract < ModelContract +class Backlogs::BacklogBuckets::BaseContract < ModelContract validate :user_authorized def self.model diff --git a/modules/backlogs/app/contracts/backlog_buckets/create_contract.rb b/modules/backlogs/app/contracts/backlogs/backlog_buckets/create_contract.rb similarity index 97% rename from modules/backlogs/app/contracts/backlog_buckets/create_contract.rb rename to modules/backlogs/app/contracts/backlogs/backlog_buckets/create_contract.rb index e58ab36f5233..f82270499d09 100644 --- a/modules/backlogs/app/contracts/backlog_buckets/create_contract.rb +++ b/modules/backlogs/app/contracts/backlogs/backlog_buckets/create_contract.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -module BacklogBuckets +module Backlogs::BacklogBuckets class CreateContract < BaseContract attribute :project_id end diff --git a/modules/backlogs/app/contracts/backlog_buckets/delete_contract.rb b/modules/backlogs/app/contracts/backlogs/backlog_buckets/delete_contract.rb similarity index 97% rename from modules/backlogs/app/contracts/backlog_buckets/delete_contract.rb rename to modules/backlogs/app/contracts/backlogs/backlog_buckets/delete_contract.rb index d5c0034d0879..18d110dde601 100644 --- a/modules/backlogs/app/contracts/backlog_buckets/delete_contract.rb +++ b/modules/backlogs/app/contracts/backlogs/backlog_buckets/delete_contract.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -module BacklogBuckets +module Backlogs::BacklogBuckets class DeleteContract < ::DeleteContract delete_permission :create_sprints end diff --git a/modules/backlogs/app/contracts/backlog_buckets/update_contract.rb b/modules/backlogs/app/contracts/backlogs/backlog_buckets/update_contract.rb similarity index 97% rename from modules/backlogs/app/contracts/backlog_buckets/update_contract.rb rename to modules/backlogs/app/contracts/backlogs/backlog_buckets/update_contract.rb index 3835d5892899..f584ab897d91 100644 --- a/modules/backlogs/app/contracts/backlog_buckets/update_contract.rb +++ b/modules/backlogs/app/contracts/backlogs/backlog_buckets/update_contract.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -module BacklogBuckets +module Backlogs::BacklogBuckets class UpdateContract < BaseContract end end diff --git a/modules/backlogs/app/contracts/projects/backlog_settings_contract.rb b/modules/backlogs/app/contracts/backlogs/projects/backlog_settings_contract.rb similarity index 99% rename from modules/backlogs/app/contracts/projects/backlog_settings_contract.rb rename to modules/backlogs/app/contracts/backlogs/projects/backlog_settings_contract.rb index f81281817a00..15a6d688f392 100644 --- a/modules/backlogs/app/contracts/projects/backlog_settings_contract.rb +++ b/modules/backlogs/app/contracts/backlogs/projects/backlog_settings_contract.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -module Projects +module Backlogs::Projects class BacklogSettingsContract < ::ModelContract stored_attribute :sprint_sharing, store: :settings diff --git a/modules/backlogs/app/contracts/projects/backlogs_types_and_statuses_contract.rb b/modules/backlogs/app/contracts/backlogs/projects/backlogs_types_and_statuses_contract.rb similarity index 98% rename from modules/backlogs/app/contracts/projects/backlogs_types_and_statuses_contract.rb rename to modules/backlogs/app/contracts/backlogs/projects/backlogs_types_and_statuses_contract.rb index a2fbe376e041..dab5ae5cf36a 100644 --- a/modules/backlogs/app/contracts/projects/backlogs_types_and_statuses_contract.rb +++ b/modules/backlogs/app/contracts/backlogs/projects/backlogs_types_and_statuses_contract.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -module Projects +module Backlogs::Projects class BacklogsTypesAndStatusesContract < ::ModelContract validate :validate_permissions validate :validate_done_status_ids diff --git a/modules/backlogs/app/contracts/sprints/base_contract.rb b/modules/backlogs/app/contracts/backlogs/sprints/base_contract.rb similarity index 98% rename from modules/backlogs/app/contracts/sprints/base_contract.rb rename to modules/backlogs/app/contracts/backlogs/sprints/base_contract.rb index 99ad623d18b2..95ececc11406 100644 --- a/modules/backlogs/app/contracts/sprints/base_contract.rb +++ b/modules/backlogs/app/contracts/backlogs/sprints/base_contract.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -module Sprints +module Backlogs::Sprints class BaseContract < ::ModelContract validate :user_authorized diff --git a/modules/backlogs/app/contracts/sprints/create_contract.rb b/modules/backlogs/app/contracts/backlogs/sprints/create_contract.rb similarity index 98% rename from modules/backlogs/app/contracts/sprints/create_contract.rb rename to modules/backlogs/app/contracts/backlogs/sprints/create_contract.rb index 40c61906d514..f2c29a9aac44 100644 --- a/modules/backlogs/app/contracts/sprints/create_contract.rb +++ b/modules/backlogs/app/contracts/backlogs/sprints/create_contract.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -module Sprints +module Backlogs::Sprints class CreateContract < BaseContract validate :no_receiving_project diff --git a/modules/backlogs/app/contracts/sprints/finish_contract.rb b/modules/backlogs/app/contracts/backlogs/sprints/finish_contract.rb similarity index 98% rename from modules/backlogs/app/contracts/sprints/finish_contract.rb rename to modules/backlogs/app/contracts/backlogs/sprints/finish_contract.rb index e104c462bfeb..039c2cb94f1a 100644 --- a/modules/backlogs/app/contracts/sprints/finish_contract.rb +++ b/modules/backlogs/app/contracts/backlogs/sprints/finish_contract.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -module Sprints +module Backlogs::Sprints class FinishContract < ModelContract validate :sprint_must_be_active validate :user_allowed_to_finish diff --git a/modules/backlogs/app/contracts/sprints/start_contract.rb b/modules/backlogs/app/contracts/backlogs/sprints/start_contract.rb similarity index 98% rename from modules/backlogs/app/contracts/sprints/start_contract.rb rename to modules/backlogs/app/contracts/backlogs/sprints/start_contract.rb index db4f89f943a2..aa8ab03a01ce 100644 --- a/modules/backlogs/app/contracts/sprints/start_contract.rb +++ b/modules/backlogs/app/contracts/backlogs/sprints/start_contract.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -module Sprints +module Backlogs::Sprints class StartContract < ::BaseContract validate :validate_permission validate :validate_status_in_planning diff --git a/modules/backlogs/app/contracts/sprints/update_contract.rb b/modules/backlogs/app/contracts/backlogs/sprints/update_contract.rb similarity index 98% rename from modules/backlogs/app/contracts/sprints/update_contract.rb rename to modules/backlogs/app/contracts/backlogs/sprints/update_contract.rb index 046ffc7e4e5a..d91941c7daf3 100644 --- a/modules/backlogs/app/contracts/sprints/update_contract.rb +++ b/modules/backlogs/app/contracts/backlogs/sprints/update_contract.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -module Sprints +module Backlogs::Sprints class UpdateContract < BaseContract end end diff --git a/modules/backlogs/app/contracts/work_packages/move_between_sprints_contract.rb b/modules/backlogs/app/contracts/backlogs/work_packages/move_between_sprints_contract.rb similarity index 98% rename from modules/backlogs/app/contracts/work_packages/move_between_sprints_contract.rb rename to modules/backlogs/app/contracts/backlogs/work_packages/move_between_sprints_contract.rb index abb22ab60dd1..fec39d389d76 100644 --- a/modules/backlogs/app/contracts/work_packages/move_between_sprints_contract.rb +++ b/modules/backlogs/app/contracts/backlogs/work_packages/move_between_sprints_contract.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. # ++ -module WorkPackages +module Backlogs::WorkPackages # Contract used for moving work packages between two sprints at the end # of a sprint. It does not enforce permissions as this change is carried # out in the background. diff --git a/modules/backlogs/app/contracts/work_packages/move_to_backlog_contract.rb b/modules/backlogs/app/contracts/backlogs/work_packages/move_to_backlog_contract.rb similarity index 98% rename from modules/backlogs/app/contracts/work_packages/move_to_backlog_contract.rb rename to modules/backlogs/app/contracts/backlogs/work_packages/move_to_backlog_contract.rb index 35b4b47da2c7..c77b75ce6b8e 100644 --- a/modules/backlogs/app/contracts/work_packages/move_to_backlog_contract.rb +++ b/modules/backlogs/app/contracts/backlogs/work_packages/move_to_backlog_contract.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -module WorkPackages +module Backlogs::WorkPackages # Contract used for moving work packages to the product backlog (sprint = nil, backlog_bucket = nil): # * at the end of a sprint # * upon bucket deletion diff --git a/modules/backlogs/app/controllers/backlogs/backlog_buckets_controller.rb b/modules/backlogs/app/controllers/backlogs/backlog_buckets_controller.rb index 8d499d17ecc0..d2141eba66a6 100644 --- a/modules/backlogs/app/controllers/backlogs/backlog_buckets_controller.rb +++ b/modules/backlogs/app/controllers/backlogs/backlog_buckets_controller.rb @@ -49,7 +49,7 @@ def destroy_dialog end def create - call = ::BacklogBuckets::CreateService + call = ::Backlogs::BacklogBuckets::CreateService .new(user: current_user) .call(attributes: backlog_bucket_params) @@ -63,7 +63,7 @@ def create end def update - call = ::BacklogBuckets::UpdateService + call = ::Backlogs::BacklogBuckets::UpdateService .new(user: current_user, model: @backlog_bucket) .call(attributes: edit_backlog_bucket_params) @@ -77,7 +77,7 @@ def update end def destroy - call = ::BacklogBuckets::DeleteService + call = ::Backlogs::BacklogBuckets::DeleteService .new(user: current_user, model: @backlog_bucket) .call diff --git a/modules/backlogs/app/controllers/backlogs/backlog_controller.rb b/modules/backlogs/app/controllers/backlogs/backlog_controller.rb index e75051756138..035cffd26943 100644 --- a/modules/backlogs/app/controllers/backlogs/backlog_controller.rb +++ b/modules/backlogs/app/controllers/backlogs/backlog_controller.rb @@ -30,7 +30,7 @@ module Backlogs class BacklogController < BaseController - include WorkPackages::WithSplitView + include ::WorkPackages::WithSplitView current_menu_item %i[show details] do :backlog diff --git a/modules/backlogs/app/controllers/backlogs/sprints_controller.rb b/modules/backlogs/app/controllers/backlogs/sprints_controller.rb index c425c0151713..3a89a30d9f3f 100644 --- a/modules/backlogs/app/controllers/backlogs/sprints_controller.rb +++ b/modules/backlogs/app/controllers/backlogs/sprints_controller.rb @@ -46,7 +46,7 @@ class SprintsController < BaseController before_action :authorize_finish!, only: :finish def new_dialog - call = ::Sprints::SetAttributesService.new( + call = ::Backlogs::Sprints::SetAttributesService.new( user: current_user, model: Sprint.new, contract_class: ::EmptyContract @@ -65,7 +65,7 @@ def refresh_form id = edit_sprint_params.dig(:sprint, :id) sprint = id.present? ? Sprint.for_project(@project).visible.find(id) : Sprint.new - call = ::Sprints::SetAttributesService.new( + call = ::Backlogs::Sprints::SetAttributesService.new( user: current_user, model: sprint, contract_class: ::EmptyContract @@ -77,7 +77,7 @@ def refresh_form end def create # rubocop:disable Metrics/AbcSize - call = ::Sprints::CreateService + call = ::Backlogs::Sprints::CreateService .new(user: current_user) .call(attributes: converted_sprint_params) @@ -91,7 +91,7 @@ def create # rubocop:disable Metrics/AbcSize end def update - call = ::Sprints::UpdateService + call = ::Backlogs::Sprints::UpdateService .new(user: current_user, model: @sprint) .call(attributes: sprint_params[:sprint]) @@ -184,13 +184,13 @@ def converted_sprint_params end def start_sprint - ::Sprints::StartService + ::Backlogs::Sprints::StartService .new(user: current_user, model: @sprint) .call(send_notifications: false) end def finish_sprint - ::Sprints::FinishService + ::Backlogs::Sprints::FinishService .new(user: current_user, model: @sprint) .call( unfinished_action: params[:unfinished_action], @@ -221,12 +221,12 @@ def start_finish_failure_message(action, reason) def authorize_start! deny_access unless current_user.allowed_in_project?(:view_sprints, @project) && - ::Sprints::StartContract.can_start?(user: current_user, sprint: @sprint, project: @project) + ::Backlogs::Sprints::StartContract.can_start?(user: current_user, sprint: @sprint, project: @project) end def authorize_finish! deny_access unless current_user.allowed_in_project?(:view_sprints, @project) && - ::Sprints::StartContract.can_start_or_complete?(user: current_user, sprint: @sprint) + ::Backlogs::Sprints::StartContract.can_start_or_complete?(user: current_user, sprint: @sprint) end end end diff --git a/modules/backlogs/app/controllers/backlogs/work_packages_controller.rb b/modules/backlogs/app/controllers/backlogs/work_packages_controller.rb index d571d78b14c5..492af29ef743 100644 --- a/modules/backlogs/app/controllers/backlogs/work_packages_controller.rb +++ b/modules/backlogs/app/controllers/backlogs/work_packages_controller.rb @@ -66,7 +66,7 @@ def move # Capture the source before the call; the service reloads @work_package internally via #move_after. source = @work_package.sprint - call = Stories::UpdateService.new(user: current_user, story: @work_package) + call = ::Backlogs::Stories::UpdateService.new(user: current_user, story: @work_package) .call(**move_params.to_h.symbolize_keys) if call.success? diff --git a/modules/backlogs/app/controllers/projects/settings/backlog_sharings_controller.rb b/modules/backlogs/app/controllers/projects/settings/backlog_sharings_controller.rb index 850677bbfa2e..0bd5142a7174 100644 --- a/modules/backlogs/app/controllers/projects/settings/backlog_sharings_controller.rb +++ b/modules/backlogs/app/controllers/projects/settings/backlog_sharings_controller.rb @@ -35,7 +35,7 @@ def show; end def update call = Projects::UpdateService - .new(model: @project, user: current_user, contract_class: Projects::BacklogSettingsContract) + .new(model: @project, user: current_user, contract_class: ::Backlogs::Projects::BacklogSettingsContract) .call(backlog_settings_params) if call.success? diff --git a/modules/backlogs/app/controllers/projects/settings/backlogs_controller.rb b/modules/backlogs/app/controllers/projects/settings/backlogs_controller.rb index 9900a70cfbdc..8b9e2bf4ea2c 100644 --- a/modules/backlogs/app/controllers/projects/settings/backlogs_controller.rb +++ b/modules/backlogs/app/controllers/projects/settings/backlogs_controller.rb @@ -37,7 +37,7 @@ def update call = Projects::UpdateService .new(model: @project, user: current_user, - contract_class: Projects::BacklogsTypesAndStatusesContract) + contract_class: ::Backlogs::Projects::BacklogsTypesAndStatusesContract) .call(backlogs_settings_params) if call.success? @@ -50,7 +50,7 @@ def update end def rebuild_positions - WorkPackages::RebuildPositionsService.new(project: @project).call + ::Backlogs::WorkPackages::RebuildPositionsService.new(project: @project).call flash[:notice] = I18n.t("backlogs.positions_rebuilt_successfully") redirect_back_or_to_backlogs_settings diff --git a/modules/backlogs/app/services/backlog_buckets/create_service.rb b/modules/backlogs/app/services/backlogs/backlog_buckets/create_service.rb similarity index 94% rename from modules/backlogs/app/services/backlog_buckets/create_service.rb rename to modules/backlogs/app/services/backlogs/backlog_buckets/create_service.rb index 9cdfc4b7fc17..74e2727460ef 100644 --- a/modules/backlogs/app/services/backlog_buckets/create_service.rb +++ b/modules/backlogs/app/services/backlogs/backlog_buckets/create_service.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -class BacklogBuckets::CreateService < BaseServices::Create +class Backlogs::BacklogBuckets::CreateService < BaseServices::Create def instance_class BacklogBucket end diff --git a/modules/backlogs/app/services/backlog_buckets/delete_service.rb b/modules/backlogs/app/services/backlogs/backlog_buckets/delete_service.rb similarity index 88% rename from modules/backlogs/app/services/backlog_buckets/delete_service.rb rename to modules/backlogs/app/services/backlogs/backlog_buckets/delete_service.rb index 4f5ac03fec4e..788549f18921 100644 --- a/modules/backlogs/app/services/backlog_buckets/delete_service.rb +++ b/modules/backlogs/app/services/backlogs/backlog_buckets/delete_service.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -class BacklogBuckets::DeleteService < BaseServices::Delete +class Backlogs::BacklogBuckets::DeleteService < BaseServices::Delete private def after_validate(service_call) @@ -39,8 +39,8 @@ def after_validate(service_call) def move_to_backlog model.work_packages.order(position: :asc).map do |wp| - WorkPackages::UpdateService - .new(user:, model: wp, contract_class: WorkPackages::MoveToBacklogContract) + ::WorkPackages::UpdateService + .new(user:, model: wp, contract_class: ::Backlogs::WorkPackages::MoveToBacklogContract) .call(backlog_bucket: nil) end end diff --git a/modules/backlogs/app/services/backlog_buckets/set_attributes_service.rb b/modules/backlogs/app/services/backlogs/backlog_buckets/set_attributes_service.rb similarity index 93% rename from modules/backlogs/app/services/backlog_buckets/set_attributes_service.rb rename to modules/backlogs/app/services/backlogs/backlog_buckets/set_attributes_service.rb index 2a112d350360..6ae879f3024b 100644 --- a/modules/backlogs/app/services/backlog_buckets/set_attributes_service.rb +++ b/modules/backlogs/app/services/backlogs/backlog_buckets/set_attributes_service.rb @@ -28,5 +28,5 @@ # See COPYRIGHT and LICENSE files for more details. #++ -class BacklogBuckets::SetAttributesService < BaseServices::SetAttributes +class Backlogs::BacklogBuckets::SetAttributesService < BaseServices::SetAttributes end diff --git a/modules/backlogs/app/services/backlog_buckets/update_service.rb b/modules/backlogs/app/services/backlogs/backlog_buckets/update_service.rb similarity index 94% rename from modules/backlogs/app/services/backlog_buckets/update_service.rb rename to modules/backlogs/app/services/backlogs/backlog_buckets/update_service.rb index 868e4fdefc36..383dca2966cd 100644 --- a/modules/backlogs/app/services/backlog_buckets/update_service.rb +++ b/modules/backlogs/app/services/backlogs/backlog_buckets/update_service.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -class BacklogBuckets::UpdateService < BaseServices::Update +class Backlogs::BacklogBuckets::UpdateService < BaseServices::Update def instance_class BacklogBucket end diff --git a/modules/backlogs/app/services/sprints/create_service.rb b/modules/backlogs/app/services/backlogs/sprints/create_service.rb similarity index 95% rename from modules/backlogs/app/services/sprints/create_service.rb rename to modules/backlogs/app/services/backlogs/sprints/create_service.rb index e5ae08d08c13..6b6380acd60e 100644 --- a/modules/backlogs/app/services/sprints/create_service.rb +++ b/modules/backlogs/app/services/backlogs/sprints/create_service.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -class Sprints::CreateService < BaseServices::Create +class Backlogs::Sprints::CreateService < BaseServices::Create def instance_class Sprint end diff --git a/modules/backlogs/app/services/sprints/finish_service.rb b/modules/backlogs/app/services/backlogs/sprints/finish_service.rb similarity index 87% rename from modules/backlogs/app/services/sprints/finish_service.rb rename to modules/backlogs/app/services/backlogs/sprints/finish_service.rb index 877ccaa0e699..da54eef72159 100644 --- a/modules/backlogs/app/services/sprints/finish_service.rb +++ b/modules/backlogs/app/services/backlogs/sprints/finish_service.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -class Sprints::FinishService < BaseServices::BaseContracted +class Backlogs::Sprints::FinishService < BaseServices::BaseContracted def initialize(user:, model:) super(user:) self.model = model @@ -56,7 +56,7 @@ def persist(service_call) end def default_contract_class - Sprints::FinishContract + ::Backlogs::Sprints::FinishContract end private @@ -67,8 +67,8 @@ def open_work_packages def move_to_sprint(target_sprint) open_work_packages.order(position: :desc).map do |wp| - WorkPackages::UpdateService - .new(user:, model: wp, contract_class: WorkPackages::MoveBetweenSprintsContract) + ::WorkPackages::UpdateService + .new(user:, model: wp, contract_class: ::Backlogs::WorkPackages::MoveBetweenSprintsContract) .call(sprint: target_sprint, position: 1) end end @@ -81,8 +81,8 @@ def move_to_backlog(position:) call_args[:position] = position if position open_work_packages.order(position: order_direction).map do |wp| - WorkPackages::UpdateService - .new(user:, model: wp, contract_class: WorkPackages::MoveToBacklogContract) + ::WorkPackages::UpdateService + .new(user:, model: wp, contract_class: ::Backlogs::WorkPackages::MoveToBacklogContract) .call(**call_args) end end diff --git a/modules/backlogs/app/services/sprints/set_attributes_service.rb b/modules/backlogs/app/services/backlogs/sprints/set_attributes_service.rb similarity index 99% rename from modules/backlogs/app/services/sprints/set_attributes_service.rb rename to modules/backlogs/app/services/backlogs/sprints/set_attributes_service.rb index 2ed6d5974c23..56b65b0169c9 100644 --- a/modules/backlogs/app/services/sprints/set_attributes_service.rb +++ b/modules/backlogs/app/services/backlogs/sprints/set_attributes_service.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -module Sprints +module Backlogs::Sprints class SetAttributesService < ::BaseServices::SetAttributes private diff --git a/modules/backlogs/app/services/sprints/start_service.rb b/modules/backlogs/app/services/backlogs/sprints/start_service.rb similarity index 93% rename from modules/backlogs/app/services/sprints/start_service.rb rename to modules/backlogs/app/services/backlogs/sprints/start_service.rb index ed7f6a61602d..f3bc4ebd2050 100644 --- a/modules/backlogs/app/services/sprints/start_service.rb +++ b/modules/backlogs/app/services/backlogs/sprints/start_service.rb @@ -28,8 +28,8 @@ # See COPYRIGHT and LICENSE files for more details. #++ -class Sprints::StartService < BaseServices::BaseContracted - def initialize(user:, model:, contract_class: Sprints::StartContract) +class Backlogs::Sprints::StartService < BaseServices::BaseContracted + def initialize(user:, model:, contract_class: ::Backlogs::Sprints::StartContract) super(user:, contract_class:) self.model = model end diff --git a/modules/backlogs/app/services/sprints/update_service.rb b/modules/backlogs/app/services/backlogs/sprints/update_service.rb similarity index 95% rename from modules/backlogs/app/services/sprints/update_service.rb rename to modules/backlogs/app/services/backlogs/sprints/update_service.rb index f66e804e5727..f69da5640b2e 100644 --- a/modules/backlogs/app/services/sprints/update_service.rb +++ b/modules/backlogs/app/services/backlogs/sprints/update_service.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -class Sprints::UpdateService < BaseServices::Update +class Backlogs::Sprints::UpdateService < BaseServices::Update def instance_class Sprint end diff --git a/modules/backlogs/app/services/stories/update_service.rb b/modules/backlogs/app/services/backlogs/stories/update_service.rb similarity index 95% rename from modules/backlogs/app/services/stories/update_service.rb rename to modules/backlogs/app/services/backlogs/stories/update_service.rb index 71244cef82b0..26b0e61a67f2 100644 --- a/modules/backlogs/app/services/stories/update_service.rb +++ b/modules/backlogs/app/services/backlogs/stories/update_service.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -class Stories::UpdateService +class Backlogs::Stories::UpdateService attr_accessor :user, :story def initialize(user:, story:) @@ -38,7 +38,7 @@ def initialize(user:, story:) def call(direction: nil, target_id: nil, position: nil, prev_id: nil) resolve_required_attributes(direction:, target_id:) - .bind { |attrs| WorkPackages::UpdateService.new(user:, model: story).call(**attrs) } + .bind { |attrs| ::WorkPackages::UpdateService.new(user:, model: story).call(**attrs) } .on_success do |call| if prev_id call.result.move_after(prev_id:) diff --git a/modules/backlogs/app/services/work_packages/rebuild_positions_service.rb b/modules/backlogs/app/services/backlogs/work_packages/rebuild_positions_service.rb similarity index 97% rename from modules/backlogs/app/services/work_packages/rebuild_positions_service.rb rename to modules/backlogs/app/services/backlogs/work_packages/rebuild_positions_service.rb index 3bb1be7ed6ab..d8438543b545 100644 --- a/modules/backlogs/app/services/work_packages/rebuild_positions_service.rb +++ b/modules/backlogs/app/services/backlogs/work_packages/rebuild_positions_service.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. # ++ -class WorkPackages::RebuildPositionsService +class Backlogs::WorkPackages::RebuildPositionsService def initialize(project: nil) @project = project end diff --git a/modules/backlogs/spec/contracts/backlog_buckets/create_contract_spec.rb b/modules/backlogs/spec/contracts/backlogs/backlog_buckets/create_contract_spec.rb similarity index 95% rename from modules/backlogs/spec/contracts/backlog_buckets/create_contract_spec.rb rename to modules/backlogs/spec/contracts/backlogs/backlog_buckets/create_contract_spec.rb index 47bee290864d..e1365e661cfc 100644 --- a/modules/backlogs/spec/contracts/backlog_buckets/create_contract_spec.rb +++ b/modules/backlogs/spec/contracts/backlogs/backlog_buckets/create_contract_spec.rb @@ -31,7 +31,7 @@ require "spec_helper" require_relative "shared_contract_examples" -RSpec.describe BacklogBuckets::CreateContract do +RSpec.describe ::Backlogs::BacklogBuckets::CreateContract do include_context "as backlog bucket contract" let(:backlog_bucket) do diff --git a/modules/backlogs/spec/contracts/backlog_buckets/delete_contract_spec.rb b/modules/backlogs/spec/contracts/backlogs/backlog_buckets/delete_contract_spec.rb similarity index 97% rename from modules/backlogs/spec/contracts/backlog_buckets/delete_contract_spec.rb rename to modules/backlogs/spec/contracts/backlogs/backlog_buckets/delete_contract_spec.rb index 1caab8ab3efa..cd26b7ae211b 100644 --- a/modules/backlogs/spec/contracts/backlog_buckets/delete_contract_spec.rb +++ b/modules/backlogs/spec/contracts/backlogs/backlog_buckets/delete_contract_spec.rb @@ -31,7 +31,7 @@ require "spec_helper" require "contracts/shared/model_contract_shared_context" -RSpec.describe BacklogBuckets::DeleteContract do +RSpec.describe ::Backlogs::BacklogBuckets::DeleteContract do include_context "ModelContract shared context" let(:project) { build_stubbed(:project) } diff --git a/modules/backlogs/spec/contracts/backlog_buckets/shared_contract_examples.rb b/modules/backlogs/spec/contracts/backlogs/backlog_buckets/shared_contract_examples.rb similarity index 100% rename from modules/backlogs/spec/contracts/backlog_buckets/shared_contract_examples.rb rename to modules/backlogs/spec/contracts/backlogs/backlog_buckets/shared_contract_examples.rb diff --git a/modules/backlogs/spec/contracts/backlog_buckets/update_contract_spec.rb b/modules/backlogs/spec/contracts/backlogs/backlog_buckets/update_contract_spec.rb similarity index 96% rename from modules/backlogs/spec/contracts/backlog_buckets/update_contract_spec.rb rename to modules/backlogs/spec/contracts/backlogs/backlog_buckets/update_contract_spec.rb index 4c6b294fada7..51609cc51558 100644 --- a/modules/backlogs/spec/contracts/backlog_buckets/update_contract_spec.rb +++ b/modules/backlogs/spec/contracts/backlogs/backlog_buckets/update_contract_spec.rb @@ -31,7 +31,7 @@ require "spec_helper" require_relative "shared_contract_examples" -RSpec.describe BacklogBuckets::UpdateContract do +RSpec.describe ::Backlogs::BacklogBuckets::UpdateContract do include_context "as backlog bucket contract" let(:backlog_bucket) do diff --git a/modules/backlogs/spec/contracts/projects/backlog_settings_contract_spec.rb b/modules/backlogs/spec/contracts/backlogs/projects/backlog_settings_contract_spec.rb similarity index 98% rename from modules/backlogs/spec/contracts/projects/backlog_settings_contract_spec.rb rename to modules/backlogs/spec/contracts/backlogs/projects/backlog_settings_contract_spec.rb index f6cadae09287..7376032063e4 100644 --- a/modules/backlogs/spec/contracts/projects/backlog_settings_contract_spec.rb +++ b/modules/backlogs/spec/contracts/backlogs/projects/backlog_settings_contract_spec.rb @@ -3,7 +3,7 @@ require "spec_helper" require "contracts/shared/model_contract_shared_context" -RSpec.describe Projects::BacklogSettingsContract, type: :model, with_ee: %i[sprint_sharing] do +RSpec.describe Backlogs::Projects::BacklogSettingsContract, type: :model, with_ee: %i[sprint_sharing] do include_context "ModelContract shared context" let(:current_user) { build_stubbed(:user) } diff --git a/modules/backlogs/spec/contracts/projects/backlogs_types_and_statuses_contract_spec.rb b/modules/backlogs/spec/contracts/backlogs/projects/backlogs_types_and_statuses_contract_spec.rb similarity index 97% rename from modules/backlogs/spec/contracts/projects/backlogs_types_and_statuses_contract_spec.rb rename to modules/backlogs/spec/contracts/backlogs/projects/backlogs_types_and_statuses_contract_spec.rb index 596c2873c94f..80d2105264e5 100644 --- a/modules/backlogs/spec/contracts/projects/backlogs_types_and_statuses_contract_spec.rb +++ b/modules/backlogs/spec/contracts/backlogs/projects/backlogs_types_and_statuses_contract_spec.rb @@ -31,7 +31,7 @@ require "spec_helper" require "contracts/shared/model_contract_shared_context" -RSpec.describe Projects::BacklogsTypesAndStatusesContract, type: :model do +RSpec.describe Backlogs::Projects::BacklogsTypesAndStatusesContract, type: :model do include_context "ModelContract shared context" let(:current_user) { build_stubbed(:user) } diff --git a/modules/backlogs/spec/contracts/sprints/create_contract_spec.rb b/modules/backlogs/spec/contracts/backlogs/sprints/create_contract_spec.rb similarity index 97% rename from modules/backlogs/spec/contracts/sprints/create_contract_spec.rb rename to modules/backlogs/spec/contracts/backlogs/sprints/create_contract_spec.rb index 20b4bd72aa5b..1b9df62e8208 100644 --- a/modules/backlogs/spec/contracts/sprints/create_contract_spec.rb +++ b/modules/backlogs/spec/contracts/backlogs/sprints/create_contract_spec.rb @@ -31,7 +31,7 @@ require "spec_helper" require_relative "shared_contract_examples" -RSpec.describe Sprints::CreateContract do +RSpec.describe Backlogs::Sprints::CreateContract do include_context "as sprint contract" let(:sprint) do diff --git a/modules/backlogs/spec/contracts/sprints/finish_contract_spec.rb b/modules/backlogs/spec/contracts/backlogs/sprints/finish_contract_spec.rb similarity index 98% rename from modules/backlogs/spec/contracts/sprints/finish_contract_spec.rb rename to modules/backlogs/spec/contracts/backlogs/sprints/finish_contract_spec.rb index 7888d50253cc..58099796d6d8 100644 --- a/modules/backlogs/spec/contracts/sprints/finish_contract_spec.rb +++ b/modules/backlogs/spec/contracts/backlogs/sprints/finish_contract_spec.rb @@ -31,7 +31,7 @@ require "spec_helper" require "contracts/shared/model_contract_shared_context" -RSpec.describe Sprints::FinishContract do +RSpec.describe Backlogs::Sprints::FinishContract do include_context "ModelContract shared context" let(:project) { build_stubbed(:project) } diff --git a/modules/backlogs/spec/contracts/sprints/shared_contract_examples.rb b/modules/backlogs/spec/contracts/backlogs/sprints/shared_contract_examples.rb similarity index 100% rename from modules/backlogs/spec/contracts/sprints/shared_contract_examples.rb rename to modules/backlogs/spec/contracts/backlogs/sprints/shared_contract_examples.rb diff --git a/modules/backlogs/spec/contracts/sprints/start_contract_spec.rb b/modules/backlogs/spec/contracts/backlogs/sprints/start_contract_spec.rb similarity index 98% rename from modules/backlogs/spec/contracts/sprints/start_contract_spec.rb rename to modules/backlogs/spec/contracts/backlogs/sprints/start_contract_spec.rb index af669d35bb46..380e877cf61d 100644 --- a/modules/backlogs/spec/contracts/sprints/start_contract_spec.rb +++ b/modules/backlogs/spec/contracts/backlogs/sprints/start_contract_spec.rb @@ -30,7 +30,7 @@ require "spec_helper" -RSpec.describe Sprints::StartContract do +RSpec.describe Backlogs::Sprints::StartContract do let(:project) { create(:project) } let(:user) { create(:user) } let(:sprint) do diff --git a/modules/backlogs/spec/contracts/sprints/update_contract_spec.rb b/modules/backlogs/spec/contracts/backlogs/sprints/update_contract_spec.rb similarity index 96% rename from modules/backlogs/spec/contracts/sprints/update_contract_spec.rb rename to modules/backlogs/spec/contracts/backlogs/sprints/update_contract_spec.rb index ad9dfcd91fe3..c6c069b2da0b 100644 --- a/modules/backlogs/spec/contracts/sprints/update_contract_spec.rb +++ b/modules/backlogs/spec/contracts/backlogs/sprints/update_contract_spec.rb @@ -31,7 +31,7 @@ require "spec_helper" require_relative "shared_contract_examples" -RSpec.describe Sprints::UpdateContract do +RSpec.describe Backlogs::Sprints::UpdateContract do include_context "as sprint contract" let(:sprint) do diff --git a/modules/backlogs/spec/controllers/backlogs/sprints_controller_spec.rb b/modules/backlogs/spec/controllers/backlogs/sprints_controller_spec.rb index 947780b0faac..87a0de96a960 100644 --- a/modules/backlogs/spec/controllers/backlogs/sprints_controller_spec.rb +++ b/modules/backlogs/spec/controllers/backlogs/sprints_controller_spec.rb @@ -173,11 +173,11 @@ describe "POST #start" do let!(:sprint) { create(:sprint, project:) } let(:service_result) { ServiceResult.success(result: sprint.tap { it.status = "active" }) } - let(:service) { instance_double(Sprints::StartService, call: service_result) } + let(:service) { instance_double(Backlogs::Sprints::StartService, call: service_result) } let(:request_params) { { project_id: project.id, sprint_id: sprint.id } } before do - allow(Sprints::StartService) + allow(Backlogs::Sprints::StartService) .to receive(:new) .with(user:, model: sprint) .and_return(service) @@ -344,10 +344,10 @@ result: sprint.tap { |finished_sprint| finished_sprint.status = "completed" } ) end - let(:service) { instance_double(Sprints::FinishService, call: service_result) } + let(:service) { instance_double(Backlogs::Sprints::FinishService, call: service_result) } before do - allow(Sprints::FinishService) + allow(Backlogs::Sprints::FinishService) .to receive(:new) .with(user:, model: sprint) .and_return(service) diff --git a/modules/backlogs/spec/controllers/backlogs/work_packages_controller_spec.rb b/modules/backlogs/spec/controllers/backlogs/work_packages_controller_spec.rb index aa6bdff92885..6d26edd76447 100644 --- a/modules/backlogs/spec/controllers/backlogs/work_packages_controller_spec.rb +++ b/modules/backlogs/spec/controllers/backlogs/work_packages_controller_spec.rb @@ -228,9 +228,9 @@ context "when service call fails" do before do - allow(Stories::UpdateService) + allow(Backlogs::Stories::UpdateService) .to receive(:new) - .and_return(instance_double(Stories::UpdateService, call: ServiceResult.failure(message: "Error"))) + .and_return(instance_double(Backlogs::Stories::UpdateService, call: ServiceResult.failure(message: "Error"))) end it "renders an error flash with 422", :aggregate_failures do @@ -466,9 +466,9 @@ let(:service_result) { ServiceResult.failure(message: "Something went wrong") } before do - update_service = instance_double(Stories::UpdateService, call: service_result) + update_service = instance_double(Backlogs::Stories::UpdateService, call: service_result) - allow(Stories::UpdateService) + allow(Backlogs::Stories::UpdateService) .to receive(:new) .and_return(update_service) end diff --git a/modules/backlogs/spec/controllers/projects/settings/backlog_sharings_controller_spec.rb b/modules/backlogs/spec/controllers/projects/settings/backlog_sharings_controller_spec.rb index 5f1f9eaddae1..ed971ff70e45 100644 --- a/modules/backlogs/spec/controllers/projects/settings/backlog_sharings_controller_spec.rb +++ b/modules/backlogs/spec/controllers/projects/settings/backlog_sharings_controller_spec.rb @@ -21,7 +21,7 @@ before do allow(Projects::UpdateService) .to receive(:new) - .with(model: project, user:, contract_class: Projects::BacklogSettingsContract) + .with(model: project, user:, contract_class: Backlogs::Projects::BacklogSettingsContract) .and_return(update_service) patch :update, params: { project_id: project.identifier, project: project_params } diff --git a/modules/backlogs/spec/controllers/projects/settings/backlogs_controller_spec.rb b/modules/backlogs/spec/controllers/projects/settings/backlogs_controller_spec.rb index abd5c056fd04..70df7b39cdec 100644 --- a/modules/backlogs/spec/controllers/projects/settings/backlogs_controller_spec.rb +++ b/modules/backlogs/spec/controllers/projects/settings/backlogs_controller_spec.rb @@ -49,7 +49,7 @@ before do allow(Projects::UpdateService) .to receive(:new) - .with(model: project, user:, contract_class: Projects::BacklogsTypesAndStatusesContract) + .with(model: project, user:, contract_class: Backlogs::Projects::BacklogsTypesAndStatusesContract) .and_return(update_service) patch :update, params: { project_id: project.identifier, project: project_params } diff --git a/modules/backlogs/spec/services/backlog_buckets/create_service_spec.rb b/modules/backlogs/spec/services/backlogs/backlog_buckets/create_service_spec.rb similarity index 95% rename from modules/backlogs/spec/services/backlog_buckets/create_service_spec.rb rename to modules/backlogs/spec/services/backlogs/backlog_buckets/create_service_spec.rb index 7966f339f7bb..775400c35789 100644 --- a/modules/backlogs/spec/services/backlog_buckets/create_service_spec.rb +++ b/modules/backlogs/spec/services/backlogs/backlog_buckets/create_service_spec.rb @@ -31,7 +31,7 @@ require "spec_helper" require "services/base_services/behaves_like_create_service" -RSpec.describe BacklogBuckets::CreateService, type: :model do +RSpec.describe ::Backlogs::BacklogBuckets::CreateService, type: :model do it_behaves_like "BaseServices create service" do let(:model_class) { BacklogBucket } let(:factory) { :backlog_bucket } diff --git a/modules/backlogs/spec/services/backlog_buckets/delete_service_spec.rb b/modules/backlogs/spec/services/backlogs/backlog_buckets/delete_service_spec.rb similarity index 97% rename from modules/backlogs/spec/services/backlog_buckets/delete_service_spec.rb rename to modules/backlogs/spec/services/backlogs/backlog_buckets/delete_service_spec.rb index 8fa46b72b1e1..8ae8cfe71ffa 100644 --- a/modules/backlogs/spec/services/backlog_buckets/delete_service_spec.rb +++ b/modules/backlogs/spec/services/backlogs/backlog_buckets/delete_service_spec.rb @@ -31,7 +31,7 @@ require "spec_helper" require "services/base_services/behaves_like_delete_service" -RSpec.describe BacklogBuckets::DeleteService, type: :model do +RSpec.describe ::Backlogs::BacklogBuckets::DeleteService, type: :model do shared_let(:project) { create(:project, enabled_module_names: %w[backlogs work_package_tracking]) } shared_let(:bucket) { create(:backlog_bucket, project:) } shared_let(:no_bucket_wp1) { create(:work_package, project:) } diff --git a/modules/backlogs/spec/services/backlog_buckets/set_attributes_service_spec.rb b/modules/backlogs/spec/services/backlogs/backlog_buckets/set_attributes_service_spec.rb similarity index 95% rename from modules/backlogs/spec/services/backlog_buckets/set_attributes_service_spec.rb rename to modules/backlogs/spec/services/backlogs/backlog_buckets/set_attributes_service_spec.rb index 420dfabe8e16..b477dd9df8e4 100644 --- a/modules/backlogs/spec/services/backlog_buckets/set_attributes_service_spec.rb +++ b/modules/backlogs/spec/services/backlogs/backlog_buckets/set_attributes_service_spec.rb @@ -30,10 +30,10 @@ require "spec_helper" -RSpec.describe BacklogBuckets::SetAttributesService, type: :model do +RSpec.describe ::Backlogs::BacklogBuckets::SetAttributesService, type: :model do let(:user) { build_stubbed(:user) } let(:contract_class) do - contract = class_double(BacklogBuckets::CreateContract) + contract = class_double(::Backlogs::BacklogBuckets::CreateContract) allow(contract) .to receive(:new) diff --git a/modules/backlogs/spec/services/backlog_buckets/update_service_spec.rb b/modules/backlogs/spec/services/backlogs/backlog_buckets/update_service_spec.rb similarity index 95% rename from modules/backlogs/spec/services/backlog_buckets/update_service_spec.rb rename to modules/backlogs/spec/services/backlogs/backlog_buckets/update_service_spec.rb index e88954343f0a..08d5cc8ef53d 100644 --- a/modules/backlogs/spec/services/backlog_buckets/update_service_spec.rb +++ b/modules/backlogs/spec/services/backlogs/backlog_buckets/update_service_spec.rb @@ -31,7 +31,7 @@ require "spec_helper" require "services/base_services/behaves_like_update_service" -RSpec.describe BacklogBuckets::UpdateService, type: :model do +RSpec.describe ::Backlogs::BacklogBuckets::UpdateService, type: :model do it_behaves_like "BaseServices update service" do let(:model_class) { BacklogBucket } let(:factory) { :backlog_bucket } diff --git a/modules/backlogs/spec/services/sprints/create_service_spec.rb b/modules/backlogs/spec/services/backlogs/sprints/create_service_spec.rb similarity index 95% rename from modules/backlogs/spec/services/sprints/create_service_spec.rb rename to modules/backlogs/spec/services/backlogs/sprints/create_service_spec.rb index 8c6909fd8b56..032b781a8df5 100644 --- a/modules/backlogs/spec/services/sprints/create_service_spec.rb +++ b/modules/backlogs/spec/services/backlogs/sprints/create_service_spec.rb @@ -31,7 +31,7 @@ require "spec_helper" require "services/base_services/behaves_like_create_service" -RSpec.describe Sprints::CreateService, type: :model do +RSpec.describe Backlogs::Sprints::CreateService, type: :model do it_behaves_like "BaseServices create service" do let(:model_class) { Sprint } let(:factory) { :sprint } diff --git a/modules/backlogs/spec/services/sprints/finish_service_spec.rb b/modules/backlogs/spec/services/backlogs/sprints/finish_service_spec.rb similarity index 99% rename from modules/backlogs/spec/services/sprints/finish_service_spec.rb rename to modules/backlogs/spec/services/backlogs/sprints/finish_service_spec.rb index d43c384c9c3e..5a878a00725b 100644 --- a/modules/backlogs/spec/services/sprints/finish_service_spec.rb +++ b/modules/backlogs/spec/services/backlogs/sprints/finish_service_spec.rb @@ -30,7 +30,7 @@ require "rails_helper" -RSpec.describe Sprints::FinishService do +RSpec.describe Backlogs::Sprints::FinishService do create_shared_association_defaults_for_work_package_factory shared_let(:open_status) { create(:status, is_closed: false) } diff --git a/modules/backlogs/spec/services/sprints/set_attributes_service_spec.rb b/modules/backlogs/spec/services/backlogs/sprints/set_attributes_service_spec.rb similarity index 98% rename from modules/backlogs/spec/services/sprints/set_attributes_service_spec.rb rename to modules/backlogs/spec/services/backlogs/sprints/set_attributes_service_spec.rb index 16f63b6bcba2..fed759818c44 100644 --- a/modules/backlogs/spec/services/sprints/set_attributes_service_spec.rb +++ b/modules/backlogs/spec/services/backlogs/sprints/set_attributes_service_spec.rb @@ -30,10 +30,10 @@ require "spec_helper" -RSpec.describe Sprints::SetAttributesService, type: :model do +RSpec.describe Backlogs::Sprints::SetAttributesService, type: :model do let(:user) { build_stubbed(:user) } let(:contract_class) do - contract = class_double(Sprints::CreateContract) + contract = class_double(Backlogs::Sprints::CreateContract) allow(contract) .to receive(:new) diff --git a/modules/backlogs/spec/services/sprints/start_service_spec.rb b/modules/backlogs/spec/services/backlogs/sprints/start_service_spec.rb similarity index 99% rename from modules/backlogs/spec/services/sprints/start_service_spec.rb rename to modules/backlogs/spec/services/backlogs/sprints/start_service_spec.rb index ac55f8811f8b..7c8c036a6d8e 100644 --- a/modules/backlogs/spec/services/sprints/start_service_spec.rb +++ b/modules/backlogs/spec/services/backlogs/sprints/start_service_spec.rb @@ -30,7 +30,7 @@ require "rails_helper" -RSpec.describe Sprints::StartService do +RSpec.describe Backlogs::Sprints::StartService do shared_let(:type_task) { create(:type_task) } shared_let(:status1) { create(:status) } shared_let(:status2) { create(:status) } diff --git a/modules/backlogs/spec/services/stories/update_service_spec.rb b/modules/backlogs/spec/services/backlogs/stories/update_service_spec.rb similarity index 99% rename from modules/backlogs/spec/services/stories/update_service_spec.rb rename to modules/backlogs/spec/services/backlogs/stories/update_service_spec.rb index c85a452c45f3..448b2a489785 100644 --- a/modules/backlogs/spec/services/stories/update_service_spec.rb +++ b/modules/backlogs/spec/services/backlogs/stories/update_service_spec.rb @@ -30,7 +30,7 @@ require "spec_helper" -RSpec.describe Stories::UpdateService, type: :model do +RSpec.describe ::Backlogs::Stories::UpdateService, type: :model do let(:user) { build_stubbed(:user) } let(:story) { build_stubbed(:work_package) } let(:instance) { described_class.new(user:, story:) } diff --git a/modules/backlogs/spec/services/work_packages/rebuild_positions_service_integration_spec.rb b/modules/backlogs/spec/services/backlogs/work_packages/rebuild_positions_service_integration_spec.rb similarity index 99% rename from modules/backlogs/spec/services/work_packages/rebuild_positions_service_integration_spec.rb rename to modules/backlogs/spec/services/backlogs/work_packages/rebuild_positions_service_integration_spec.rb index 9ab0c721ff80..3890ddec3550 100644 --- a/modules/backlogs/spec/services/work_packages/rebuild_positions_service_integration_spec.rb +++ b/modules/backlogs/spec/services/backlogs/work_packages/rebuild_positions_service_integration_spec.rb @@ -30,7 +30,7 @@ require "spec_helper" -RSpec.describe WorkPackages::RebuildPositionsService, "integration", type: :model do +RSpec.describe Backlogs::WorkPackages::RebuildPositionsService, "integration", type: :model do def create_work_package(options) create(:work_package, options.reverse_merge(project: options[:sprint]&.project || options[:backlog_bucket]&.project, type_id: type.id)) do |wp| From 922b4ba988b05789d733724a0b9a20c8f73d9d45 Mon Sep 17 00:00:00 2001 From: Ivan Kuchin Date: Fri, 29 May 2026 17:46:57 +0200 Subject: [PATCH 2/3] compact Backlogs::BacklogBuckets to Backlogs::Buckets --- .../backlogs/backlog_component.html.erb | 2 +- .../backlogs/bucket_component.html.erb | 4 +- .../bucket_destroy_modal_component.rb | 2 +- .../backlogs/bucket_form_component.rb | 4 +- .../base_contract.rb | 2 +- .../create_contract.rb | 2 +- .../delete_contract.rb | 2 +- .../update_contract.rb | 2 +- ...ts_controller.rb => buckets_controller.rb} | 8 +-- .../create_service.rb | 2 +- .../delete_service.rb | 2 +- .../set_attributes_service.rb | 2 +- .../update_service.rb | 2 +- modules/backlogs/config/routes.rb | 2 +- .../lib/open_project/backlogs/engine.rb | 2 +- .../create_contract_spec.rb | 2 +- .../delete_contract_spec.rb | 2 +- .../shared_contract_examples.rb | 0 .../update_contract_spec.rb | 2 +- ...ler_spec.rb => buckets_controller_spec.rb} | 2 +- ...outing_spec.rb => buckets_routing_spec.rb} | 50 +++++++++---------- .../create_service_spec.rb | 2 +- .../delete_service_spec.rb | 7 ++- .../set_attributes_service_spec.rb | 4 +- .../update_service_spec.rb | 2 +- 25 files changed, 58 insertions(+), 55 deletions(-) rename modules/backlogs/app/contracts/backlogs/{backlog_buckets => buckets}/base_contract.rb (96%) rename modules/backlogs/app/contracts/backlogs/{backlog_buckets => buckets}/create_contract.rb (97%) rename modules/backlogs/app/contracts/backlogs/{backlog_buckets => buckets}/delete_contract.rb (97%) rename modules/backlogs/app/contracts/backlogs/{backlog_buckets => buckets}/update_contract.rb (97%) rename modules/backlogs/app/controllers/backlogs/{backlog_buckets_controller.rb => buckets_controller.rb} (94%) rename modules/backlogs/app/services/backlogs/{backlog_buckets => buckets}/create_service.rb (94%) rename modules/backlogs/app/services/backlogs/{backlog_buckets => buckets}/delete_service.rb (95%) rename modules/backlogs/app/services/backlogs/{backlog_buckets => buckets}/set_attributes_service.rb (93%) rename modules/backlogs/app/services/backlogs/{backlog_buckets => buckets}/update_service.rb (94%) rename modules/backlogs/spec/contracts/backlogs/{backlog_buckets => buckets}/create_contract_spec.rb (95%) rename modules/backlogs/spec/contracts/backlogs/{backlog_buckets => buckets}/delete_contract_spec.rb (97%) rename modules/backlogs/spec/contracts/backlogs/{backlog_buckets => buckets}/shared_contract_examples.rb (100%) rename modules/backlogs/spec/contracts/backlogs/{backlog_buckets => buckets}/update_contract_spec.rb (96%) rename modules/backlogs/spec/controllers/backlogs/{backlog_buckets_controller_spec.rb => buckets_controller_spec.rb} (98%) rename modules/backlogs/spec/routing/backlogs/{backlog_buckets_routing_spec.rb => buckets_routing_spec.rb} (57%) rename modules/backlogs/spec/services/backlogs/{backlog_buckets => buckets}/create_service_spec.rb (95%) rename modules/backlogs/spec/services/backlogs/{backlog_buckets => buckets}/delete_service_spec.rb (93%) rename modules/backlogs/spec/services/backlogs/{backlog_buckets => buckets}/set_attributes_service_spec.rb (95%) rename modules/backlogs/spec/services/backlogs/{backlog_buckets => buckets}/update_service_spec.rb (95%) diff --git a/modules/backlogs/app/components/backlogs/backlog_component.html.erb b/modules/backlogs/app/components/backlogs/backlog_component.html.erb index 86246593ea49..d09514a4e00f 100644 --- a/modules/backlogs/app/components/backlogs/backlog_component.html.erb +++ b/modules/backlogs/app/components/backlogs/backlog_component.html.erb @@ -54,7 +54,7 @@ See COPYRIGHT and LICENSE files for more details. render Primer::Beta::Button.new( tag: :a, label: BacklogBucket.human_model_name, - href: new_dialog_project_backlogs_backlog_buckets_path(project, all_backlogs_params), + href: new_dialog_project_backlogs_buckets_path(project, all_backlogs_params), data: { controller: "async-dialog", test_selector: "op-backlog-buckets--new-backlog-bucket-button" diff --git a/modules/backlogs/app/components/backlogs/bucket_component.html.erb b/modules/backlogs/app/components/backlogs/bucket_component.html.erb index 0e06e97f1117..987b849544a5 100644 --- a/modules/backlogs/app/components/backlogs/bucket_component.html.erb +++ b/modules/backlogs/app/components/backlogs/bucket_component.html.erb @@ -50,7 +50,7 @@ See COPYRIGHT and LICENSE files for more details. menu.with_item( id: dom_target(backlog_bucket, :menu, :edit_backlog_bucket), label: t(".action_menu.edit_backlog_bucket"), - href: edit_dialog_project_backlogs_backlog_bucket_path(project, backlog_bucket, all_backlogs_params), + href: edit_dialog_project_backlogs_bucket_path(project, backlog_bucket, all_backlogs_params), content_arguments: { data: { controller: "async-dialog" } } ) do |item| item.with_leading_visual_icon(icon: :pencil) @@ -60,7 +60,7 @@ See COPYRIGHT and LICENSE files for more details. id: dom_target(backlog_bucket, :menu, :delete_backlog_bucket), label: t(".action_menu.delete_backlog_bucket"), scheme: :danger, - href: destroy_dialog_project_backlogs_backlog_bucket_path(project, backlog_bucket, all_backlogs_params), + href: destroy_dialog_project_backlogs_bucket_path(project, backlog_bucket, all_backlogs_params), content_arguments: { data: { controller: "async-dialog" } } ) do |item| item.with_leading_visual_icon(icon: :trash) diff --git a/modules/backlogs/app/components/backlogs/bucket_destroy_modal_component.rb b/modules/backlogs/app/components/backlogs/bucket_destroy_modal_component.rb index c1f2eec6fa08..08b684b77cf8 100644 --- a/modules/backlogs/app/components/backlogs/bucket_destroy_modal_component.rb +++ b/modules/backlogs/app/components/backlogs/bucket_destroy_modal_component.rb @@ -54,7 +54,7 @@ def details def form_arguments { - action: project_backlogs_backlog_bucket_path(backlog_bucket.project, + action: project_backlogs_bucket_path(backlog_bucket.project, backlog_bucket, helpers.all_backlogs_params), method: :delete diff --git a/modules/backlogs/app/components/backlogs/bucket_form_component.rb b/modules/backlogs/app/components/backlogs/bucket_form_component.rb index 67662c72e6ae..a6325a42c657 100644 --- a/modules/backlogs/app/components/backlogs/bucket_form_component.rb +++ b/modules/backlogs/app/components/backlogs/bucket_form_component.rb @@ -54,9 +54,9 @@ def http_verb def form_url if @backlog_bucket.new_record? - project_backlogs_backlog_buckets_path(@backlog_bucket.project, all_backlogs_params) + project_backlogs_buckets_path(@backlog_bucket.project, all_backlogs_params) else - project_backlogs_backlog_bucket_path(@backlog_bucket.project, @backlog_bucket, all_backlogs_params) + project_backlogs_bucket_path(@backlog_bucket.project, @backlog_bucket, all_backlogs_params) end end end diff --git a/modules/backlogs/app/contracts/backlogs/backlog_buckets/base_contract.rb b/modules/backlogs/app/contracts/backlogs/buckets/base_contract.rb similarity index 96% rename from modules/backlogs/app/contracts/backlogs/backlog_buckets/base_contract.rb rename to modules/backlogs/app/contracts/backlogs/buckets/base_contract.rb index 633684732366..913d56aefbdd 100644 --- a/modules/backlogs/app/contracts/backlogs/backlog_buckets/base_contract.rb +++ b/modules/backlogs/app/contracts/backlogs/buckets/base_contract.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -class Backlogs::BacklogBuckets::BaseContract < ModelContract +class Backlogs::Buckets::BaseContract < ModelContract validate :user_authorized def self.model diff --git a/modules/backlogs/app/contracts/backlogs/backlog_buckets/create_contract.rb b/modules/backlogs/app/contracts/backlogs/buckets/create_contract.rb similarity index 97% rename from modules/backlogs/app/contracts/backlogs/backlog_buckets/create_contract.rb rename to modules/backlogs/app/contracts/backlogs/buckets/create_contract.rb index f82270499d09..69f1093f3da8 100644 --- a/modules/backlogs/app/contracts/backlogs/backlog_buckets/create_contract.rb +++ b/modules/backlogs/app/contracts/backlogs/buckets/create_contract.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -module Backlogs::BacklogBuckets +module Backlogs::Buckets class CreateContract < BaseContract attribute :project_id end diff --git a/modules/backlogs/app/contracts/backlogs/backlog_buckets/delete_contract.rb b/modules/backlogs/app/contracts/backlogs/buckets/delete_contract.rb similarity index 97% rename from modules/backlogs/app/contracts/backlogs/backlog_buckets/delete_contract.rb rename to modules/backlogs/app/contracts/backlogs/buckets/delete_contract.rb index 18d110dde601..cbe24bc0fdbe 100644 --- a/modules/backlogs/app/contracts/backlogs/backlog_buckets/delete_contract.rb +++ b/modules/backlogs/app/contracts/backlogs/buckets/delete_contract.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -module Backlogs::BacklogBuckets +module Backlogs::Buckets class DeleteContract < ::DeleteContract delete_permission :create_sprints end diff --git a/modules/backlogs/app/contracts/backlogs/backlog_buckets/update_contract.rb b/modules/backlogs/app/contracts/backlogs/buckets/update_contract.rb similarity index 97% rename from modules/backlogs/app/contracts/backlogs/backlog_buckets/update_contract.rb rename to modules/backlogs/app/contracts/backlogs/buckets/update_contract.rb index f584ab897d91..f4dcd65b21c4 100644 --- a/modules/backlogs/app/contracts/backlogs/backlog_buckets/update_contract.rb +++ b/modules/backlogs/app/contracts/backlogs/buckets/update_contract.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -module Backlogs::BacklogBuckets +module Backlogs::Buckets class UpdateContract < BaseContract end end diff --git a/modules/backlogs/app/controllers/backlogs/backlog_buckets_controller.rb b/modules/backlogs/app/controllers/backlogs/buckets_controller.rb similarity index 94% rename from modules/backlogs/app/controllers/backlogs/backlog_buckets_controller.rb rename to modules/backlogs/app/controllers/backlogs/buckets_controller.rb index d2141eba66a6..24dc83fe338c 100644 --- a/modules/backlogs/app/controllers/backlogs/backlog_buckets_controller.rb +++ b/modules/backlogs/app/controllers/backlogs/buckets_controller.rb @@ -29,7 +29,7 @@ #++ module Backlogs - class BacklogBucketsController < BaseController + class BucketsController < BaseController include OpTurbo::ComponentStream before_action :find_backlog_bucket, only: %i[edit_dialog destroy_dialog update destroy] @@ -49,7 +49,7 @@ def destroy_dialog end def create - call = ::Backlogs::BacklogBuckets::CreateService + call = ::Backlogs::Buckets::CreateService .new(user: current_user) .call(attributes: backlog_bucket_params) @@ -63,7 +63,7 @@ def create end def update - call = ::Backlogs::BacklogBuckets::UpdateService + call = ::Backlogs::Buckets::UpdateService .new(user: current_user, model: @backlog_bucket) .call(attributes: edit_backlog_bucket_params) @@ -77,7 +77,7 @@ def update end def destroy - call = ::Backlogs::BacklogBuckets::DeleteService + call = ::Backlogs::Buckets::DeleteService .new(user: current_user, model: @backlog_bucket) .call diff --git a/modules/backlogs/app/services/backlogs/backlog_buckets/create_service.rb b/modules/backlogs/app/services/backlogs/buckets/create_service.rb similarity index 94% rename from modules/backlogs/app/services/backlogs/backlog_buckets/create_service.rb rename to modules/backlogs/app/services/backlogs/buckets/create_service.rb index 74e2727460ef..6dcb46dd7fa7 100644 --- a/modules/backlogs/app/services/backlogs/backlog_buckets/create_service.rb +++ b/modules/backlogs/app/services/backlogs/buckets/create_service.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -class Backlogs::BacklogBuckets::CreateService < BaseServices::Create +class Backlogs::Buckets::CreateService < BaseServices::Create def instance_class BacklogBucket end diff --git a/modules/backlogs/app/services/backlogs/backlog_buckets/delete_service.rb b/modules/backlogs/app/services/backlogs/buckets/delete_service.rb similarity index 95% rename from modules/backlogs/app/services/backlogs/backlog_buckets/delete_service.rb rename to modules/backlogs/app/services/backlogs/buckets/delete_service.rb index 788549f18921..b15929648f9a 100644 --- a/modules/backlogs/app/services/backlogs/backlog_buckets/delete_service.rb +++ b/modules/backlogs/app/services/backlogs/buckets/delete_service.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -class Backlogs::BacklogBuckets::DeleteService < BaseServices::Delete +class Backlogs::Buckets::DeleteService < BaseServices::Delete private def after_validate(service_call) diff --git a/modules/backlogs/app/services/backlogs/backlog_buckets/set_attributes_service.rb b/modules/backlogs/app/services/backlogs/buckets/set_attributes_service.rb similarity index 93% rename from modules/backlogs/app/services/backlogs/backlog_buckets/set_attributes_service.rb rename to modules/backlogs/app/services/backlogs/buckets/set_attributes_service.rb index 6ae879f3024b..ad5633d01987 100644 --- a/modules/backlogs/app/services/backlogs/backlog_buckets/set_attributes_service.rb +++ b/modules/backlogs/app/services/backlogs/buckets/set_attributes_service.rb @@ -28,5 +28,5 @@ # See COPYRIGHT and LICENSE files for more details. #++ -class Backlogs::BacklogBuckets::SetAttributesService < BaseServices::SetAttributes +class Backlogs::Buckets::SetAttributesService < BaseServices::SetAttributes end diff --git a/modules/backlogs/app/services/backlogs/backlog_buckets/update_service.rb b/modules/backlogs/app/services/backlogs/buckets/update_service.rb similarity index 94% rename from modules/backlogs/app/services/backlogs/backlog_buckets/update_service.rb rename to modules/backlogs/app/services/backlogs/buckets/update_service.rb index 383dca2966cd..259fbf07e9d9 100644 --- a/modules/backlogs/app/services/backlogs/backlog_buckets/update_service.rb +++ b/modules/backlogs/app/services/backlogs/buckets/update_service.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -class Backlogs::BacklogBuckets::UpdateService < BaseServices::Update +class Backlogs::Buckets::UpdateService < BaseServices::Update def instance_class BacklogBucket end diff --git a/modules/backlogs/config/routes.rb b/modules/backlogs/config/routes.rb index 7c92727dab45..87cb3adfdea3 100644 --- a/modules/backlogs/config/routes.rb +++ b/modules/backlogs/config/routes.rb @@ -67,7 +67,7 @@ constraints: { work_package_id: WorkPackage::SemanticIdentifier::ID_ROUTE_CONSTRAINT }, defaults: { tab: :overview } - resources :backlog_buckets, only: %i[create update destroy] do + resources :buckets, only: %i[create update destroy] do collection do get :new_dialog end diff --git a/modules/backlogs/lib/open_project/backlogs/engine.rb b/modules/backlogs/lib/open_project/backlogs/engine.rb index bd68a029bf2a..ea5a397f3e2d 100644 --- a/modules/backlogs/lib/open_project/backlogs/engine.rb +++ b/modules/backlogs/lib/open_project/backlogs/engine.rb @@ -69,7 +69,7 @@ def self.settings require: :member permission :create_sprints, - { "backlogs/backlog_buckets": %i[new_dialog create edit_dialog update destroy_dialog destroy], + { "backlogs/buckets": %i[new_dialog create edit_dialog update destroy_dialog destroy], "backlogs/sprints": %i[new_dialog refresh_form create edit_dialog update] }, permissible_on: :project, require: :member, diff --git a/modules/backlogs/spec/contracts/backlogs/backlog_buckets/create_contract_spec.rb b/modules/backlogs/spec/contracts/backlogs/buckets/create_contract_spec.rb similarity index 95% rename from modules/backlogs/spec/contracts/backlogs/backlog_buckets/create_contract_spec.rb rename to modules/backlogs/spec/contracts/backlogs/buckets/create_contract_spec.rb index e1365e661cfc..be8080ef7dcd 100644 --- a/modules/backlogs/spec/contracts/backlogs/backlog_buckets/create_contract_spec.rb +++ b/modules/backlogs/spec/contracts/backlogs/buckets/create_contract_spec.rb @@ -31,7 +31,7 @@ require "spec_helper" require_relative "shared_contract_examples" -RSpec.describe ::Backlogs::BacklogBuckets::CreateContract do +RSpec.describe Backlogs::Buckets::CreateContract do include_context "as backlog bucket contract" let(:backlog_bucket) do diff --git a/modules/backlogs/spec/contracts/backlogs/backlog_buckets/delete_contract_spec.rb b/modules/backlogs/spec/contracts/backlogs/buckets/delete_contract_spec.rb similarity index 97% rename from modules/backlogs/spec/contracts/backlogs/backlog_buckets/delete_contract_spec.rb rename to modules/backlogs/spec/contracts/backlogs/buckets/delete_contract_spec.rb index cd26b7ae211b..81b9721fbd9e 100644 --- a/modules/backlogs/spec/contracts/backlogs/backlog_buckets/delete_contract_spec.rb +++ b/modules/backlogs/spec/contracts/backlogs/buckets/delete_contract_spec.rb @@ -31,7 +31,7 @@ require "spec_helper" require "contracts/shared/model_contract_shared_context" -RSpec.describe ::Backlogs::BacklogBuckets::DeleteContract do +RSpec.describe Backlogs::Buckets::DeleteContract do include_context "ModelContract shared context" let(:project) { build_stubbed(:project) } diff --git a/modules/backlogs/spec/contracts/backlogs/backlog_buckets/shared_contract_examples.rb b/modules/backlogs/spec/contracts/backlogs/buckets/shared_contract_examples.rb similarity index 100% rename from modules/backlogs/spec/contracts/backlogs/backlog_buckets/shared_contract_examples.rb rename to modules/backlogs/spec/contracts/backlogs/buckets/shared_contract_examples.rb diff --git a/modules/backlogs/spec/contracts/backlogs/backlog_buckets/update_contract_spec.rb b/modules/backlogs/spec/contracts/backlogs/buckets/update_contract_spec.rb similarity index 96% rename from modules/backlogs/spec/contracts/backlogs/backlog_buckets/update_contract_spec.rb rename to modules/backlogs/spec/contracts/backlogs/buckets/update_contract_spec.rb index 51609cc51558..78a976e2a570 100644 --- a/modules/backlogs/spec/contracts/backlogs/backlog_buckets/update_contract_spec.rb +++ b/modules/backlogs/spec/contracts/backlogs/buckets/update_contract_spec.rb @@ -31,7 +31,7 @@ require "spec_helper" require_relative "shared_contract_examples" -RSpec.describe ::Backlogs::BacklogBuckets::UpdateContract do +RSpec.describe Backlogs::Buckets::UpdateContract do include_context "as backlog bucket contract" let(:backlog_bucket) do diff --git a/modules/backlogs/spec/controllers/backlogs/backlog_buckets_controller_spec.rb b/modules/backlogs/spec/controllers/backlogs/buckets_controller_spec.rb similarity index 98% rename from modules/backlogs/spec/controllers/backlogs/backlog_buckets_controller_spec.rb rename to modules/backlogs/spec/controllers/backlogs/buckets_controller_spec.rb index 1034f878e1e6..87cfdd51c32c 100644 --- a/modules/backlogs/spec/controllers/backlogs/backlog_buckets_controller_spec.rb +++ b/modules/backlogs/spec/controllers/backlogs/buckets_controller_spec.rb @@ -30,7 +30,7 @@ require "rails_helper" -RSpec.describe Backlogs::BacklogBucketsController do +RSpec.describe Backlogs::BucketsController do let(:permissions) { %i[view_sprints view_work_packages create_sprints] } let(:user) { create(:user, member_with_permissions: { project => permissions }) } let(:project) { create(:project) } diff --git a/modules/backlogs/spec/routing/backlogs/backlog_buckets_routing_spec.rb b/modules/backlogs/spec/routing/backlogs/buckets_routing_spec.rb similarity index 57% rename from modules/backlogs/spec/routing/backlogs/backlog_buckets_routing_spec.rb rename to modules/backlogs/spec/routing/backlogs/buckets_routing_spec.rb index 28ad70ab819e..762ee5d4aeab 100644 --- a/modules/backlogs/spec/routing/backlogs/backlog_buckets_routing_spec.rb +++ b/modules/backlogs/spec/routing/backlogs/buckets_routing_spec.rb @@ -30,57 +30,57 @@ require "spec_helper" -RSpec.describe Backlogs::BacklogBucketsController do +RSpec.describe Backlogs::BucketsController do describe "routing" do it { - route = "/projects/project_42/backlogs/backlog_buckets" - expect(post(route)).to route_to(controller: "backlogs/backlog_buckets", + route = "/projects/project_42/backlogs/buckets" + expect(post(route)).to route_to(controller: "backlogs/buckets", action: "create", project_id: "project_42") } it { - route = "/projects/project_42/backlogs/backlog_buckets/23" - expect(patch(route)).to route_to(controller: "backlogs/backlog_buckets", + route = "/projects/project_42/backlogs/buckets/23" + expect(patch(route)).to route_to(controller: "backlogs/buckets", action: "update", project_id: "project_42", id: "23") } it { - route = "/projects/project_42/backlogs/backlog_buckets/23" - expect(put(route)).to route_to(controller: "backlogs/backlog_buckets", + route = "/projects/project_42/backlogs/buckets/23" + expect(put(route)).to route_to(controller: "backlogs/buckets", action: "update", project_id: "project_42", id: "23") } it { - route = "/projects/project_42/backlogs/backlog_buckets/23" - expect(delete(route)).to route_to(controller: "backlogs/backlog_buckets", + route = "/projects/project_42/backlogs/buckets/23" + expect(delete(route)).to route_to(controller: "backlogs/buckets", action: "destroy", project_id: "project_42", id: "23") } it { - route = "/projects/project_42/backlogs/backlog_buckets/new_dialog" - expect(get(route)).to route_to(controller: "backlogs/backlog_buckets", + route = "/projects/project_42/backlogs/buckets/new_dialog" + expect(get(route)).to route_to(controller: "backlogs/buckets", action: "new_dialog", project_id: "project_42") } it { - route = "/projects/project_42/backlogs/backlog_buckets/23/edit_dialog" - expect(get(route)).to route_to(controller: "backlogs/backlog_buckets", + route = "/projects/project_42/backlogs/buckets/23/edit_dialog" + expect(get(route)).to route_to(controller: "backlogs/buckets", action: "edit_dialog", project_id: "project_42", id: "23") } it { - route = "/projects/project_42/backlogs/backlog_buckets/23/destroy_dialog" - expect(get(route)).to route_to(controller: "backlogs/backlog_buckets", + route = "/projects/project_42/backlogs/buckets/23/destroy_dialog" + expect(get(route)).to route_to(controller: "backlogs/buckets", action: "destroy_dialog", project_id: "project_42", id: "23") @@ -89,28 +89,28 @@ describe "named routing" do it { - expect(project_backlogs_backlog_buckets_path(project_id: "project_42")) - .to eq("/projects/project_42/backlogs/backlog_buckets") + expect(project_backlogs_buckets_path(project_id: "project_42")) + .to eq("/projects/project_42/backlogs/buckets") } it { - expect(project_backlogs_backlog_bucket_path(project_id: "project_42", id: "23")) - .to eq("/projects/project_42/backlogs/backlog_buckets/23") + expect(project_backlogs_bucket_path(project_id: "project_42", id: "23")) + .to eq("/projects/project_42/backlogs/buckets/23") } it { - expect(new_dialog_project_backlogs_backlog_buckets_path(project_id: "project_42")) - .to eq("/projects/project_42/backlogs/backlog_buckets/new_dialog") + expect(new_dialog_project_backlogs_buckets_path(project_id: "project_42")) + .to eq("/projects/project_42/backlogs/buckets/new_dialog") } it { - expect(edit_dialog_project_backlogs_backlog_bucket_path(project_id: "project_42", id: "23")) - .to eq("/projects/project_42/backlogs/backlog_buckets/23/edit_dialog") + expect(edit_dialog_project_backlogs_bucket_path(project_id: "project_42", id: "23")) + .to eq("/projects/project_42/backlogs/buckets/23/edit_dialog") } it { - expect(destroy_dialog_project_backlogs_backlog_bucket_path(project_id: "project_42", id: "23")) - .to eq("/projects/project_42/backlogs/backlog_buckets/23/destroy_dialog") + expect(destroy_dialog_project_backlogs_bucket_path(project_id: "project_42", id: "23")) + .to eq("/projects/project_42/backlogs/buckets/23/destroy_dialog") } end end diff --git a/modules/backlogs/spec/services/backlogs/backlog_buckets/create_service_spec.rb b/modules/backlogs/spec/services/backlogs/buckets/create_service_spec.rb similarity index 95% rename from modules/backlogs/spec/services/backlogs/backlog_buckets/create_service_spec.rb rename to modules/backlogs/spec/services/backlogs/buckets/create_service_spec.rb index 775400c35789..d7a78a0ec1d9 100644 --- a/modules/backlogs/spec/services/backlogs/backlog_buckets/create_service_spec.rb +++ b/modules/backlogs/spec/services/backlogs/buckets/create_service_spec.rb @@ -31,7 +31,7 @@ require "spec_helper" require "services/base_services/behaves_like_create_service" -RSpec.describe ::Backlogs::BacklogBuckets::CreateService, type: :model do +RSpec.describe Backlogs::Buckets::CreateService, type: :model do it_behaves_like "BaseServices create service" do let(:model_class) { BacklogBucket } let(:factory) { :backlog_bucket } diff --git a/modules/backlogs/spec/services/backlogs/backlog_buckets/delete_service_spec.rb b/modules/backlogs/spec/services/backlogs/buckets/delete_service_spec.rb similarity index 93% rename from modules/backlogs/spec/services/backlogs/backlog_buckets/delete_service_spec.rb rename to modules/backlogs/spec/services/backlogs/buckets/delete_service_spec.rb index 8ae8cfe71ffa..ca8bb4e86b23 100644 --- a/modules/backlogs/spec/services/backlogs/backlog_buckets/delete_service_spec.rb +++ b/modules/backlogs/spec/services/backlogs/buckets/delete_service_spec.rb @@ -31,7 +31,7 @@ require "spec_helper" require "services/base_services/behaves_like_delete_service" -RSpec.describe ::Backlogs::BacklogBuckets::DeleteService, type: :model do +RSpec.describe Backlogs::Buckets::DeleteService, type: :model do shared_let(:project) { create(:project, enabled_module_names: %w[backlogs work_package_tracking]) } shared_let(:bucket) { create(:backlog_bucket, project:) } shared_let(:no_bucket_wp1) { create(:work_package, project:) } @@ -44,7 +44,10 @@ subject { instance.call } - it_behaves_like "BaseServices delete service" + it_behaves_like "BaseServices delete service" do + let(:model_class) { BacklogBucket } + let(:factory) { :backlog_bucket } + end context "when the contract is valid" do it "moves the work packages to the inbox (no bucket - updating the positions)", :aggregate_failures do diff --git a/modules/backlogs/spec/services/backlogs/backlog_buckets/set_attributes_service_spec.rb b/modules/backlogs/spec/services/backlogs/buckets/set_attributes_service_spec.rb similarity index 95% rename from modules/backlogs/spec/services/backlogs/backlog_buckets/set_attributes_service_spec.rb rename to modules/backlogs/spec/services/backlogs/buckets/set_attributes_service_spec.rb index b477dd9df8e4..d4e03c673fe5 100644 --- a/modules/backlogs/spec/services/backlogs/backlog_buckets/set_attributes_service_spec.rb +++ b/modules/backlogs/spec/services/backlogs/buckets/set_attributes_service_spec.rb @@ -30,10 +30,10 @@ require "spec_helper" -RSpec.describe ::Backlogs::BacklogBuckets::SetAttributesService, type: :model do +RSpec.describe Backlogs::Buckets::SetAttributesService, type: :model do let(:user) { build_stubbed(:user) } let(:contract_class) do - contract = class_double(::Backlogs::BacklogBuckets::CreateContract) + contract = class_double(Backlogs::Buckets::CreateContract) allow(contract) .to receive(:new) diff --git a/modules/backlogs/spec/services/backlogs/backlog_buckets/update_service_spec.rb b/modules/backlogs/spec/services/backlogs/buckets/update_service_spec.rb similarity index 95% rename from modules/backlogs/spec/services/backlogs/backlog_buckets/update_service_spec.rb rename to modules/backlogs/spec/services/backlogs/buckets/update_service_spec.rb index 08d5cc8ef53d..270548f2599b 100644 --- a/modules/backlogs/spec/services/backlogs/backlog_buckets/update_service_spec.rb +++ b/modules/backlogs/spec/services/backlogs/buckets/update_service_spec.rb @@ -31,7 +31,7 @@ require "spec_helper" require "services/base_services/behaves_like_update_service" -RSpec.describe ::Backlogs::BacklogBuckets::UpdateService, type: :model do +RSpec.describe Backlogs::Buckets::UpdateService, type: :model do it_behaves_like "BaseServices update service" do let(:model_class) { BacklogBucket } let(:factory) { :backlog_bucket } From e46f40995ca785f4ff0abf9851924230a04b2c73 Mon Sep 17 00:00:00 2001 From: Ivan Kuchin Date: Fri, 29 May 2026 17:52:26 +0200 Subject: [PATCH 3/3] rename stories update service to work packages update service --- .../app/controllers/backlogs/work_packages_controller.rb | 2 +- .../backlogs/{stories => work_packages}/update_service.rb | 2 +- .../controllers/backlogs/work_packages_controller_spec.rb | 8 ++++---- .../{stories => work_packages}/update_service_spec.rb | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) rename modules/backlogs/app/services/backlogs/{stories => work_packages}/update_service.rb (98%) rename modules/backlogs/spec/services/backlogs/{stories => work_packages}/update_service_spec.rb (98%) diff --git a/modules/backlogs/app/controllers/backlogs/work_packages_controller.rb b/modules/backlogs/app/controllers/backlogs/work_packages_controller.rb index 492af29ef743..6adb525ffbd4 100644 --- a/modules/backlogs/app/controllers/backlogs/work_packages_controller.rb +++ b/modules/backlogs/app/controllers/backlogs/work_packages_controller.rb @@ -66,7 +66,7 @@ def move # Capture the source before the call; the service reloads @work_package internally via #move_after. source = @work_package.sprint - call = ::Backlogs::Stories::UpdateService.new(user: current_user, story: @work_package) + call = ::Backlogs::WorkPackages::UpdateService.new(user: current_user, story: @work_package) .call(**move_params.to_h.symbolize_keys) if call.success? diff --git a/modules/backlogs/app/services/backlogs/stories/update_service.rb b/modules/backlogs/app/services/backlogs/work_packages/update_service.rb similarity index 98% rename from modules/backlogs/app/services/backlogs/stories/update_service.rb rename to modules/backlogs/app/services/backlogs/work_packages/update_service.rb index 26b0e61a67f2..cb5664a763c3 100644 --- a/modules/backlogs/app/services/backlogs/stories/update_service.rb +++ b/modules/backlogs/app/services/backlogs/work_packages/update_service.rb @@ -28,7 +28,7 @@ # See COPYRIGHT and LICENSE files for more details. #++ -class Backlogs::Stories::UpdateService +class Backlogs::WorkPackages::UpdateService attr_accessor :user, :story def initialize(user:, story:) diff --git a/modules/backlogs/spec/controllers/backlogs/work_packages_controller_spec.rb b/modules/backlogs/spec/controllers/backlogs/work_packages_controller_spec.rb index 6d26edd76447..e5aff138924e 100644 --- a/modules/backlogs/spec/controllers/backlogs/work_packages_controller_spec.rb +++ b/modules/backlogs/spec/controllers/backlogs/work_packages_controller_spec.rb @@ -228,9 +228,9 @@ context "when service call fails" do before do - allow(Backlogs::Stories::UpdateService) + allow(Backlogs::WorkPackages::UpdateService) .to receive(:new) - .and_return(instance_double(Backlogs::Stories::UpdateService, call: ServiceResult.failure(message: "Error"))) + .and_return(instance_double(Backlogs::WorkPackages::UpdateService, call: ServiceResult.failure(message: "Error"))) end it "renders an error flash with 422", :aggregate_failures do @@ -466,9 +466,9 @@ let(:service_result) { ServiceResult.failure(message: "Something went wrong") } before do - update_service = instance_double(Backlogs::Stories::UpdateService, call: service_result) + update_service = instance_double(Backlogs::WorkPackages::UpdateService, call: service_result) - allow(Backlogs::Stories::UpdateService) + allow(Backlogs::WorkPackages::UpdateService) .to receive(:new) .and_return(update_service) end diff --git a/modules/backlogs/spec/services/backlogs/stories/update_service_spec.rb b/modules/backlogs/spec/services/backlogs/work_packages/update_service_spec.rb similarity index 98% rename from modules/backlogs/spec/services/backlogs/stories/update_service_spec.rb rename to modules/backlogs/spec/services/backlogs/work_packages/update_service_spec.rb index 448b2a489785..d3c410002892 100644 --- a/modules/backlogs/spec/services/backlogs/stories/update_service_spec.rb +++ b/modules/backlogs/spec/services/backlogs/work_packages/update_service_spec.rb @@ -30,7 +30,7 @@ require "spec_helper" -RSpec.describe ::Backlogs::Stories::UpdateService, type: :model do +RSpec.describe Backlogs::WorkPackages::UpdateService, type: :model do let(:user) { build_stubbed(:user) } let(:story) { build_stubbed(:work_package) } let(:instance) { described_class.new(user:, story:) }