]> source.dussan.org Git - redmine.git/commitdiff
Changes Query#as_params for more complete serialization (#31276).
authorGo MAEDA <maeda@farend.jp>
Tue, 30 Apr 2019 03:10:43 +0000 (03:10 +0000)
committerGo MAEDA <maeda@farend.jp>
Tue, 30 Apr 2019 03:10:43 +0000 (03:10 +0000)
Patch by Jens Krämer.

git-svn-id: http://svn.redmine.org/redmine/trunk@18103 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/query.rb
test/unit/query_test.rb

index da76b974de133a9671bcbe0aca33637900a96775..6dea88c78b2bf898fa0f4199e07450c82c0bb749 100644 (file)
@@ -426,6 +426,8 @@ class Query < ActiveRecord::Base
         params[:v][field] = options[:values]
       end
       params[:c] = column_names
+      params[:group_by] = group_by.to_s if group_by.present?
+      params[:t] = totalable_names.map(&:to_s) if totalable_names.any?
       params[:sort] = sort_criteria.to_param
       params[:set_filter] = 1
       params
index 39b4a13e95e901665e63c68dfd98d13ebdc63f79..287ea7c4522470cca299a29cf748d294589d284e 100644 (file)
@@ -2295,4 +2295,19 @@ class QueryTest < ActiveSupport::TestCase
 
     assert_equal [["active", "1"], ["closed", "5"]], project_status_filter[:values]
   end
+
+  def test_as_params_should_serialize_query
+    query = IssueQuery.new(name: "_")
+    query.add_filter('subject', '!~', ['asdf'])
+    query.group_by = 'tracker'
+    query.totalable_names = %w(estimated_hours)
+    query.column_names = %w(id subject estimated_hours)
+    assert hsh = query.as_params
+
+    new_query = IssueQuery.build_from_params(hsh)
+    assert_equal query.filters, new_query.filters
+    assert_equal query.group_by, new_query.group_by
+    assert_equal query.column_names, new_query.column_names
+    assert_equal query.totalable_names, new_query.totalable_names
+  end
 end