Adds CustomField#group_statement.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10071 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2012-07-24 16:28:34 +00:00
parent 46b1a49453
commit 0b31c8ac85
2 changed files with 14 additions and 5 deletions

View File

@ -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

View File

@ -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