Commit 350d0874 authored by Heinrich Lee Yu's avatar Heinrich Lee Yu

Merge branch 'rebalance-issues-in-hierarchy' into 'master'

Consider all projects in hierarchy for issue rebalance

See merge request gitlab-org/gitlab!56736
parents 2430f26d 29dc05b0
......@@ -88,7 +88,6 @@ class Issue < ApplicationRecord
test_case: 2 ## EE-only
}
alias_attribute :parent_ids, :project_id
alias_method :issuing_parent, :project
alias_attribute :external_author, :service_desk_reply_to
......@@ -191,7 +190,8 @@ class Issue < ApplicationRecord
end
def self.relative_positioning_query_base(issue)
in_projects(issue.parent_ids)
projects = issue.project.group&.root_ancestor&.all_projects || issue.project
in_projects(projects)
end
def self.relative_positioning_parent_column
......
......@@ -175,21 +175,6 @@ module EE
user.can?(:admin_issue, project) && user.can?(:create_epic, group)
end
# Issue position on boards list should be relative to all group projects
def parent_ids
return super unless has_group_boards?
board_group.all_projects.select(:id)
end
def has_group_boards?
board_group && board_group.boards.any?
end
def board_group
@group ||= project.group
end
def promoted?
!!promoted_to_epic_id
end
......
......@@ -529,9 +529,10 @@ RSpec.describe Issue do
describe 'relative positioning with group boards' do
let_it_be(:group) { create(:group) }
let_it_be(:subgroup) { create(:group, parent: group) }
let_it_be(:board) { create(:board, group: group) }
let_it_be(:project) { create(:project, namespace: group) }
let_it_be(:project1) { create(:project, namespace: group) }
let_it_be(:project) { create(:project, group: subgroup) }
let_it_be(:project1) { create(:project, group: group) }
let_it_be_with_reload(:issue) { create(:issue, project: project) }
let_it_be_with_reload(:issue1) { create(:issue, project: project1, relative_position: issue.relative_position + RelativePositioning::IDEAL_DISTANCE) }
let(:new_issue) { build(:issue, project: project1, relative_position: nil) }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment