From 671fce04dec6c27b8089bc7492cb67bbf4e6277c Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sun, 20 Sep 2015 11:38:01 +0000 Subject: [PATCH] Don't propose projects without trackers when editing an issue (#20463). git-svn-id: http://svn.redmine.org/redmine/trunk@14613 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/issue.rb | 2 +- app/models/project.rb | 3 +++ test/unit/issue_test.rb | 6 ++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/models/issue.rb b/app/models/issue.rb index 13299b60e..70573dd95 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -1386,7 +1386,7 @@ class Issue < ActiveRecord::Base if current_project condition = ["(#{condition}) OR #{Project.table_name}.id = ?", current_project.id] end - Project.where(condition) + Project.where(condition).having_trackers end private diff --git a/app/models/project.rb b/app/models/project.rb index 62db1854f..25f0d3fc5 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -110,6 +110,9 @@ class Project < ActiveRecord::Base end } scope :sorted, lambda {order(:lft)} + scope :having_trackers, lambda { + where("#{Project.table_name}.id IN (SELECT DISTINCT project_id FROM #{table_name_prefix}projects_trackers#{table_name_suffix})") + } def initialize(attributes=nil, *args) super diff --git a/test/unit/issue_test.rb b/test/unit/issue_test.rb index 9a8afd66d..bed63b767 100644 --- a/test/unit/issue_test.rb +++ b/test/unit/issue_test.rb @@ -1331,6 +1331,12 @@ class IssueTest < ActiveSupport::TestCase assert_not_include Project.find(2), Issue.allowed_target_projects(User.find(2)) end + def test_allowed_target_projects_should_not_include_projects_without_trackers + project = Project.generate!(:tracker_ids => []) + assert project.trackers.empty? + assert_not_include project, Issue.allowed_target_projects(User.find(1)) + end + def test_move_to_another_project_with_same_category issue = Issue.find(1) issue.project = Project.find(2) -- 2.39.5