From: Jean-Philippe Lang Date: Tue, 24 Jul 2012 16:28:34 +0000 (+0000) Subject: Adds CustomField#group_statement. X-Git-Tag: 2.1.0~251 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=0b31c8ac85bab5d771fab65e88e2793765785d6f;p=redmine.git Adds CustomField#group_statement. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10071 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- 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