Index: app/models/query.rb =================================================================== --- app/models/query.rb (revision 6268) +++ app/models/query.rb (working copy) @@ -369,23 +369,24 @@ 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 - end + # 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 ||= Setting.issue_list_default_columns.map(&:to_sym) + + project.present? || @default_columns_names.include?(:project) ? @default_columns_names : [:project] + @default_columns_names + end + def column_names=(names) if names 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