@@ -368,15 +368,15 class Query < ActiveRecord::Base | |||
|
368 | 368 | |
|
369 | 369 | # Returns true if the query is a grouped query |
|
370 | 370 | def grouped? |
|
371 |
!group_by. |
|
|
371 | !group_by_column.nil? | |
|
372 | 372 | end |
|
373 | 373 | |
|
374 | 374 | def group_by_column |
|
375 | groupable_columns.detect {|c| c.name.to_s == group_by} | |
|
375 | groupable_columns.detect {|c| c.groupable && c.name.to_s == group_by} | |
|
376 | 376 | end |
|
377 | 377 | |
|
378 | 378 | def group_by_statement |
|
379 | group_by_column.groupable | |
|
379 | group_by_column.try(:groupable) | |
|
380 | 380 | end |
|
381 | 381 | |
|
382 | 382 | def project_statement |
@@ -225,6 +225,22 class QueryTest < ActiveSupport::TestCase | |||
|
225 | 225 | q = Query.new |
|
226 | 226 | assert q.groupable_columns.detect {|c| c.is_a? QueryCustomFieldColumn} |
|
227 | 227 | end |
|
228 | ||
|
229 | def test_grouped_with_valid_column | |
|
230 | q = Query.new(:group_by => 'status') | |
|
231 | assert q.grouped? | |
|
232 | assert_not_nil q.group_by_column | |
|
233 | assert_equal :status, q.group_by_column.name | |
|
234 | assert_not_nil q.group_by_statement | |
|
235 | assert_equal 'status', q.group_by_statement | |
|
236 | end | |
|
237 | ||
|
238 | def test_grouped_with_invalid_column | |
|
239 | q = Query.new(:group_by => 'foo') | |
|
240 | assert !q.grouped? | |
|
241 | assert_nil q.group_by_column | |
|
242 | assert_nil q.group_by_statement | |
|
243 | end | |
|
228 | 244 | |
|
229 | 245 | def test_default_sort |
|
230 | 246 | q = Query.new |
General Comments 0
You need to be logged in to leave comments.
Login now