Merged r7538 from trunk (#8411).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.2-stable@7539 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
16f56a4677
commit
3955f81b3f
|
@ -333,14 +333,17 @@ class Query < ActiveRecord::Base
|
|||
end
|
||||
|
||||
def columns
|
||||
if has_default_columns?
|
||||
available_columns.select do |c|
|
||||
# Adds the project column by default for cross-project lists
|
||||
Setting.issue_list_default_columns.include?(c.name.to_s) || (c.name == :project && project.nil?)
|
||||
end
|
||||
else
|
||||
# preserve the column_names order
|
||||
column_names.collect {|name| available_columns.find {|col| col.name == name}}.compact
|
||||
# preserve the column_names order
|
||||
(has_default_columns? ? default_columns_names : column_names).collect do |name|
|
||||
available_columns.find { |col| col.name == name }
|
||||
end.compact
|
||||
end
|
||||
|
||||
def default_columns_names
|
||||
@default_columns_names ||= begin
|
||||
default_columns = Setting.issue_list_default_columns.map(&:to_sym)
|
||||
|
||||
project.present? ? default_columns : [:project] | default_columns
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -349,7 +352,7 @@ class Query < ActiveRecord::Base
|
|||
names = names.select {|n| n.is_a?(Symbol) || !n.blank? }
|
||||
names = names.collect {|n| n.is_a?(Symbol) ? n : n.to_sym }
|
||||
# Set column_names to nil if default columns
|
||||
if names.map(&:to_s) == Setting.issue_list_default_columns
|
||||
if names == default_columns_names
|
||||
names = nil
|
||||
end
|
||||
end
|
||||
|
|
|
@ -285,6 +285,27 @@ class IssuesControllerTest < ActionController::TestCase
|
|||
:parent => { :tag => 'select', :attributes => { :id => "selected_columns" } }
|
||||
end
|
||||
|
||||
def test_index_without_project_should_implicitly_add_project_column_to_default_columns
|
||||
Setting.issue_list_default_columns = ['tracker', 'subject', 'assigned_to']
|
||||
get :index, :set_filter => 1
|
||||
|
||||
# query should use specified columns
|
||||
query = assigns(:query)
|
||||
assert_kind_of Query, query
|
||||
assert_equal [:project, :tracker, :subject, :assigned_to], query.columns.map(&:name)
|
||||
end
|
||||
|
||||
def test_index_without_project_and_explicit_default_columns_should_not_add_project_column
|
||||
Setting.issue_list_default_columns = ['tracker', 'subject', 'assigned_to']
|
||||
columns = ['tracker', 'subject', 'assigned_to']
|
||||
get :index, :set_filter => 1, :c => columns
|
||||
|
||||
# query should use specified columns
|
||||
query = assigns(:query)
|
||||
assert_kind_of Query, query
|
||||
assert_equal columns.map(&:to_sym), query.columns.map(&:name)
|
||||
end
|
||||
|
||||
def test_index_with_custom_field_column
|
||||
columns = %w(tracker subject cf_2)
|
||||
get :index, :set_filter => 1, :c => columns
|
||||
|
|
Loading…
Reference in New Issue