summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2010-12-21 21:46:54 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2010-12-21 21:46:54 +0000
commit703b0ec422bbb9bac775254e8e284a4b145551e2 (patch)
treeab10ca58156f7467be21335d11666f2150467c9f
parent3d76a67a2e108ea64618670d4ece5de0c2253436 (diff)
downloadredmine-703b0ec422bbb9bac775254e8e284a4b145551e2.tar.gz
redmine-703b0ec422bbb9bac775254e8e284a4b145551e2.zip
Fixed: 500 error on issue query grouped by a custom field that was deleted (#7144).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4553 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/models/query.rb6
-rw-r--r--test/unit/query_test.rb16
2 files changed, 19 insertions, 3 deletions
diff --git a/app/models/query.rb b/app/models/query.rb
index 949054533..1f033048a 100644
--- a/app/models/query.rb
+++ b/app/models/query.rb
@@ -378,15 +378,15 @@ class Query < ActiveRecord::Base
# Returns true if the query is a grouped query
def grouped?
- !group_by.blank?
+ !group_by_column.nil?
end
def group_by_column
- groupable_columns.detect {|c| c.name.to_s == group_by}
+ groupable_columns.detect {|c| c.groupable && c.name.to_s == group_by}
end
def group_by_statement
- group_by_column.groupable
+ group_by_column.try(:groupable)
end
def project_statement
diff --git a/test/unit/query_test.rb b/test/unit/query_test.rb
index 173367a4b..4d85a2b2b 100644
--- a/test/unit/query_test.rb
+++ b/test/unit/query_test.rb
@@ -235,6 +235,22 @@ class QueryTest < ActiveSupport::TestCase
q = Query.new
assert q.groupable_columns.detect {|c| c.is_a? QueryCustomFieldColumn}
end
+
+ def test_grouped_with_valid_column
+ q = Query.new(:group_by => 'status')
+ assert q.grouped?
+ assert_not_nil q.group_by_column
+ assert_equal :status, q.group_by_column.name
+ assert_not_nil q.group_by_statement
+ assert_equal 'status', q.group_by_statement
+ end
+
+ def test_grouped_with_invalid_column
+ q = Query.new(:group_by => 'foo')
+ assert !q.grouped?
+ assert_nil q.group_by_column
+ assert_nil q.group_by_statement
+ end
def test_default_sort
q = Query.new