summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2015-10-09 06:43:03 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2015-10-09 06:43:03 +0000
commit3ea387379d3b60d175a19534bf497c30ff1bba9c (patch)
tree0bfe5991382c384f6026324affc2584f138407c1
parent5cec71b64c7d0e91ee9107ae1a15214419ec5539 (diff)
downloadredmine-3ea387379d3b60d175a19534bf497c30ff1bba9c.tar.gz
redmine-3ea387379d3b60d175a19534bf497c30ff1bba9c.zip
Merged r14618 (#20360).
git-svn-id: http://svn.redmine.org/redmine/branches/2.6-stable@14653 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/models/project.rb16
-rw-r--r--test/functional/projects_controller_test.rb14
2 files changed, 25 insertions, 5 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index f4d458726..0494a8298 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -526,11 +526,17 @@ class Project < ActiveRecord::Base
# Returns a scope of all custom fields enabled for project issues
# (explicitly associated custom fields and custom fields enabled for all projects)
def all_issue_custom_fields
- @all_issue_custom_fields ||= IssueCustomField.
- sorted.
- where("is_for_all = ? OR id IN (SELECT DISTINCT cfp.custom_field_id" +
- " FROM #{table_name_prefix}custom_fields_projects#{table_name_suffix} cfp" +
- " WHERE cfp.project_id = ?)", true, id)
+ if new_record?
+ @all_issue_custom_fields ||= IssueCustomField.
+ sorted.
+ where("is_for_all = ? OR id IN (?)", true, issue_custom_field_ids)
+ else
+ @all_issue_custom_fields ||= IssueCustomField.
+ sorted.
+ where("is_for_all = ? OR id IN (SELECT DISTINCT cfp.custom_field_id" +
+ " FROM #{table_name_prefix}custom_fields_projects#{table_name_suffix} cfp" +
+ " WHERE cfp.project_id = ?)", true, id)
+ end
end
# Returns an array of all custom fields enabled for project time entries
diff --git a/test/functional/projects_controller_test.rb b/test/functional/projects_controller_test.rb
index e73098f0a..88ba95d33 100644
--- a/test/functional/projects_controller_test.rb
+++ b/test/functional/projects_controller_test.rb
@@ -555,6 +555,20 @@ class ProjectsControllerTest < ActionController::TestCase
assert_response 404
end
+ def test_get_copy_should_preselect_custom_fields
+ field1 = IssueCustomField.generate!(:is_for_all => false)
+ field2 = IssueCustomField.generate!(:is_for_all => false)
+ source = Project.generate!(:issue_custom_fields => [field1])
+ @request.session[:user_id] = 1
+
+ get :copy, :id => source.id
+ assert_response :success
+ assert_select 'fieldset#project_issue_custom_fields' do
+ assert_select 'input[type=checkbox][value=?][checked=checked]', field1.id.to_s
+ assert_select 'input[type=checkbox][value=?]:not([checked])', field2.id.to_s
+ end
+ end
+
def test_post_copy_should_copy_requested_items
@request.session[:user_id] = 1 # admin
CustomField.delete_all