]> source.dussan.org Git - redmine.git/commitdiff
Merged r14165 and r14166 (#19544).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 25 Apr 2015 07:37:46 +0000 (07:37 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 25 Apr 2015 07:37:46 +0000 (07:37 +0000)
git-svn-id: http://svn.redmine.org/redmine/branches/3.0-stable@14207 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/helpers/sort_helper.rb
test/functional/issues_controller_test.rb
test/unit/helpers/sort_helper_test.rb

index c9da9bd101e34fbdcda2aa578ca90cfda5de84ef..d6ac8bd22286f80546541b661efec6613b8e70be 100644 (file)
@@ -85,7 +85,7 @@ module SortHelper
       sql = @criteria.collect do |k,o|
         if s = @available_criteria[k]
           s = [s] unless s.is_a?(Array)
-          (o ? s : s.collect {|c| append_desc(c)})
+          s.collect {|c| append_order(c, o ? "ASC" : "DESC")}
         end
       end.flatten.compact
       sql.blank? ? nil : sql
@@ -129,14 +129,19 @@ module SortHelper
       self
     end
 
-    # Appends DESC to the sort criterion unless it has a fixed order
-    def append_desc(criterion)
+    # Appends ASC/DESC to the sort criterion unless it has a fixed order
+    def append_order(criterion, order)
       if criterion =~ / (asc|desc)$/i
         criterion
       else
-        "#{criterion} DESC"
+        "#{criterion} #{order}"
       end
     end
+
+    # Appends DESC to the sort criterion unless it has a fixed order
+    def append_desc(criterion)
+      append_order(criterion, "DESC")
+    end
   end
 
   def sort_name
index 7685dc127ee31d7930c93e786f32aee43464f367..488b8d8681f9ff97d4a1d14fe6bfcd8e7024aa11 100644 (file)
@@ -265,6 +265,14 @@ class IssuesControllerTest < ActionController::TestCase
     assert_not_nil assigns(:issue_count_by_group)
   end
 
+  def test_index_with_query_grouped_and_sorted_by_category
+    get :index, :project_id => 1, :set_filter => 1, :group_by => "category", :sort => "category"
+    assert_response :success
+    assert_template 'index'
+    assert_not_nil assigns(:issues)
+    assert_not_nil assigns(:issue_count_by_group)
+  end
+
   def test_index_with_query_grouped_by_list_custom_field
     get :index, :project_id => 1, :query_id => 9
     assert_response :success
index 600abdd4a8dac682850a737994dff505a8c8ea06..4f4ae3d78e357b84290ed565cd44fd0904a5641a 100644 (file)
@@ -54,7 +54,7 @@ class SortHelperTest < ActionView::TestCase
     sort_init 'attr1', 'desc'
     sort_update({'attr1' => 'table1.attr1', 'attr2' => 'table2.attr2'})
 
-    assert_equal ['table1.attr1', 'table2.attr2 DESC'], sort_clause
+    assert_equal ['table1.attr1 ASC', 'table2.attr2 DESC'], sort_clause
     assert_equal 'attr1,attr2:desc', @session['foo_bar_sort']
   end
 
@@ -74,7 +74,7 @@ class SortHelperTest < ActionView::TestCase
     sort_init 'attr1', 'desc'
     sort_update({'attr1' => 'table1.attr1', 'attr2' => 'table2.attr2'})
 
-    assert_equal ['table1.attr1', 'table2.attr2'], sort_clause
+    assert_equal ['table1.attr1 ASC', 'table2.attr2 ASC'], sort_clause
     assert_equal 'attr1,attr2', @session['foo_bar_sort']
   end