summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2012-07-24 16:28:34 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2012-07-24 16:28:34 +0000
commit0b31c8ac85bab5d771fab65e88e2793765785d6f (patch)
treeebc5a87ccb4582f9dbaccc65f0e10ad3a471f33c /app
parent46b1a49453c4a71e98efb98f89e947dc73f95c65 (diff)
downloadredmine-0b31c8ac85bab5d771fab65e88e2793765785d6f.tar.gz
redmine-0b31c8ac85bab5d771fab65e88e2793765785d6f.zip
Adds CustomField#group_statement.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10071 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app')
-rw-r--r--app/models/custom_field.rb14
-rw-r--r--app/models/query.rb5
2 files changed, 14 insertions, 5 deletions
diff --git a/app/models/custom_field.rb b/app/models/custom_field.rb
index 6a362cb25..408b54afb 100644
--- a/app/models/custom_field.rb
+++ b/app/models/custom_field.rb
@@ -128,7 +128,7 @@ class CustomField < ActiveRecord::Base
# Returns a ORDER BY clause that can used to sort customized
# objects by their value of the custom field.
- # Returns false, if the custom field can not be used for sorting.
+ # Returns nil if the custom field can not be used for sorting.
def order_statement
return nil if multiple?
case field_format
@@ -151,6 +151,18 @@ class CustomField < ActiveRecord::Base
end
end
+ # Returns a GROUP BY clause that can used to group by custom value
+ # Returns nil if the custom field can not be used for grouping.
+ def group_statement
+ return nil if multiple?
+ case field_format
+ when 'list', 'date', 'bool', 'int'
+ order_statement
+ else
+ nil
+ end
+ end
+
def <=>(field)
position <=> field.position
end
diff --git a/app/models/query.rb b/app/models/query.rb
index cd3a10f0a..b2d018906 100644
--- a/app/models/query.rb
+++ b/app/models/query.rb
@@ -57,10 +57,7 @@ class QueryCustomFieldColumn < QueryColumn
def initialize(custom_field)
self.name = "cf_#{custom_field.id}".to_sym
self.sortable = custom_field.order_statement || false
- if %w(list date bool int).include?(custom_field.field_format) && !custom_field.multiple?
- self.groupable = custom_field.order_statement
- end
- self.groupable ||= false
+ self.groupable = custom_field.group_statement || false
@cf = custom_field
end