]> source.dussan.org Git - redmine.git/commitdiff
Merged r19421 from trunk to 4.1-stable (#32769).
authorGo MAEDA <maeda@farend.jp>
Sun, 12 Jan 2020 07:04:16 +0000 (07:04 +0000)
committerGo MAEDA <maeda@farend.jp>
Sun, 12 Jan 2020 07:04:16 +0000 (07:04 +0000)
Patch by Marius BALTEANU.

git-svn-id: http://svn.redmine.org/redmine/branches/4.1-stable@19422 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/project_query.rb
test/functional/projects_controller_test.rb
test/unit/project_query_test.rb

index 5957ecb418e69c1a745d807789d16212ebc4e898..55c785e89496e369900b3e776facc3aafb5419d7 100644 (file)
@@ -71,7 +71,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
 
index cd3c16f968a3878abc09746db63e9acfecb135ee..b09af65bbfad20f711154014e428887b8769e1fc 100644 (file)
@@ -98,7 +98,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
@@ -113,7 +113,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'
@@ -209,6 +209,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, :params => {
         :format => 'js',
index 1063bce7ae7611a6cbf60101e90ab98a0a9be2a1..a680fb699bd5761e6ae1c406e59028025c712fd0 100644 (file)
@@ -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