From: Jean-Philippe Lang Date: Thu, 23 Dec 2010 10:00:35 +0000 (+0000) Subject: Merged r4553 from trunk. X-Git-Tag: 1.0.5~2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=902d765ab7ec3f21a38818ba18037ee96a76bd21;p=redmine.git Merged r4553 from trunk. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.0-stable@4565 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/models/query.rb b/app/models/query.rb index b1f784528..ec56864de 100644 --- a/app/models/query.rb +++ b/app/models/query.rb @@ -368,15 +368,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 12ab5d932..148e5d151 100644 --- a/test/unit/query_test.rb +++ b/test/unit/query_test.rb @@ -225,6 +225,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