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
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
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