From be5087cfd172b1740b8e97566e8314f3b415457f Mon Sep 17 00:00:00 2001 From: Holger Just Date: Tue, 14 May 2024 12:22:27 +0200 Subject: [PATCH] Ignore statuses in Project#rolled_up_statuses which only have an identity transition defined --- app/models/project.rb | 1 + test/functional/reports_controller_test.rb | 2 ++ test/unit/project_test.rb | 2 ++ 3 files changed, 5 insertions(+) diff --git a/app/models/project.rb b/app/models/project.rb index 2b3280651d..909080a112 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -494,6 +494,7 @@ def rolled_up_trackers_base_scope def rolled_up_statuses issue_status_ids = WorkflowTransition. where(:tracker_id => rolled_up_trackers.map(&:id)). + where('old_status_id <> new_status_id'). distinct. pluck(:old_status_id, :new_status_id). flatten. diff --git a/test/functional/reports_controller_test.rb b/test/functional/reports_controller_test.rb index 67ea188f2e..9f6624f6a8 100644 --- a/test/functional/reports_controller_test.rb +++ b/test/functional/reports_controller_test.rb @@ -107,6 +107,8 @@ def test_get_issue_report_details_by_tracker_should_show_only_statuses_used_by_t WorkflowTransition.create(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 4) WorkflowTransition.create(:role_id => 1, :tracker_id => 1, :old_status_id => 2, :new_status_id => 5) WorkflowTransition.create(:role_id => 1, :tracker_id => 2, :old_status_id => 1, :new_status_id => 6) + WorkflowTransition.create(:role_id => 1, :tracker_id => 2, :old_status_id => 3, :new_status_id => 3) + with_settings :display_subprojects_issues => '0' do get(:issue_report_details, :params => {:id => 1, :detail => 'tracker'}) end diff --git a/test/unit/project_test.rb b/test/unit/project_test.rb index a7047d71c0..dc7d00fe85 100644 --- a/test/unit/project_test.rb +++ b/test/unit/project_test.rb @@ -534,6 +534,8 @@ def test_rolled_up_statuses WorkflowTransition.create(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 4) WorkflowTransition.create(:role_id => 1, :tracker_id => 1, :old_status_id => 2, :new_status_id => 3) WorkflowTransition.create(:role_id => 1, :tracker_id => 2, :old_status_id => 1, :new_status_id => 3) + WorkflowTransition.create(:role_id => 1, :tracker_id => 1, :old_status_id => 5, :new_status_id => 5) + WorkflowTransition.create(:role_id => 1, :tracker_id => 2, :old_status_id => 5, :new_status_id => 5) assert_kind_of IssueStatus, project.rolled_up_statuses.first assert_equal IssueStatus.find(1), project.rolled_up_statuses.first -- 2.43.1