From 703b0ec422bbb9bac775254e8e284a4b145551e2 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Tue, 21 Dec 2010 21:46:54 +0000 Subject: [PATCH] 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 --- app/models/query.rb | 6 +++--- test/unit/query_test.rb | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/app/models/query.rb b/app/models/query.rb index 94905453..1f033048 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 173367a4..4d85a2b2 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