summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/project_query.rb2
-rw-r--r--test/functional/projects_controller_test.rb27
-rw-r--r--test/unit/project_query_test.rb2
3 files changed, 27 insertions, 4 deletions
diff --git a/app/models/project_query.rb b/app/models/project_query.rb
index 4a36c8029..54c16d8e6 100644
--- a/app/models/project_query.rb
+++ b/app/models/project_query.rb
@@ -70,7 +70,7 @@ class ProjectQuery < Query
return @available_columns if @available_columns
@available_columns = self.class.available_columns.dup
@available_columns += ProjectCustomField.visible.
- map {|cf| QueryAssociationCustomFieldColumn.new(:project, cf) }
+ map {|cf| QueryCustomFieldColumn.new(cf) }
@available_columns
end
diff --git a/test/functional/projects_controller_test.rb b/test/functional/projects_controller_test.rb
index 444a01c52..89bfacee6 100644
--- a/test/functional/projects_controller_test.rb
+++ b/test/functional/projects_controller_test.rb
@@ -96,7 +96,7 @@ class ProjectsControllerTest < Redmine::ControllerTest
def test_index_as_list_should_format_column_value
get :index, :params => {
- :c => ['name', 'status', 'short_description', 'homepage', 'parent_id', 'identifier', 'is_public', 'created_on', 'project.cf_3'],
+ :c => ['name', 'status', 'short_description', 'homepage', 'parent_id', 'identifier', 'is_public', 'created_on', 'cf_3'],
:display_type => 'list'
}
assert_response :success
@@ -111,7 +111,7 @@ class ProjectsControllerTest < Redmine::ControllerTest
assert_select 'td.identifier', :text => 'ecookbook'
assert_select 'td.is_public', :text => 'Yes'
assert_select 'td.created_on', :text => format_time(project.created_on)
- assert_select 'td.project_cf_3.list', :text => 'Stable'
+ assert_select 'td.cf_3.list', :text => 'Stable'
end
assert_select 'tr[id=?]', 'project-4' do
assert_select 'td.parent_id a[href=?]', '/projects/ecookbook', :text => 'eCookbook'
@@ -207,6 +207,29 @@ class ProjectsControllerTest < Redmine::ControllerTest
end
end
+ def test_index_sort_by_custom_field
+ @request.session[:user_id] = 1
+
+ cf = ProjectCustomField.find(3)
+ CustomValue.create!(:custom_field => cf, :customized => Project.find(2), :value => 'Beta')
+
+ get(
+ :index,
+ :params => {
+ :display_type => 'list',
+ :c => ['name', 'identifier', 'cf_3'],
+ :set_filter => 1,
+ :sort => "cf_#{cf.id}:asc"
+ }
+ )
+ assert_response :success
+
+ assert_equal(
+ ['Beta', 'Stable'],
+ columns_values_in_list('cf_3').reject {|p| p.empty?}
+ )
+ end
+
def test_autocomplete_js
get(
:autocomplete,
diff --git a/test/unit/project_query_test.rb b/test/unit/project_query_test.rb
index 1063bce7a..a680fb699 100644
--- a/test/unit/project_query_test.rb
+++ b/test/unit/project_query_test.rb
@@ -58,6 +58,6 @@ class ProjectQueryTest < ActiveSupport::TestCase
def test_available_columns_should_include_project_custom_fields
query = ProjectQuery.new
- assert_include :"project.cf_3", query.available_columns.map(&:name)
+ assert_include :cf_3, query.available_columns.map(&:name)
end
end