Explorar el Código

Project copy does not copy custom field settings (#20360).

git-svn-id: http://svn.redmine.org/redmine/trunk@14618 e93f8b46-1217-0410-a6f0-8f06a7374b81
tags/3.2.0
Jean-Philippe Lang hace 8 años
padre
commit
aa096cb0cc
Se han modificado 2 ficheros con 25 adiciones y 5 borrados
  1. 11
    5
      app/models/project.rb
  2. 14
    0
      test/functional/projects_controller_test.rb

+ 11
- 5
app/models/project.rb Ver fichero

@@ -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

def project

+ 14
- 0
test/functional/projects_controller_test.rb Ver fichero

@@ -608,6 +608,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

Cargando…
Cancelar
Guardar