]> source.dussan.org Git - redmine.git/commitdiff
Use base class name as customized type to fix @UserCustomField#order_statement@.
authorEtienne Massip <etienne.massip@gmail.com>
Sat, 23 Jun 2012 15:47:19 +0000 (15:47 +0000)
committerEtienne Massip <etienne.massip@gmail.com>
Sat, 23 Jun 2012 15:47:19 +0000 (15:47 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9880 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/custom_field.rb

index c5c8a937341c530505e64e55fb38657da5d9daee..24ec67a0f581f1b1699837afc671035281e2068a 100644 (file)
@@ -139,8 +139,9 @@ class CustomField < ActiveRecord::Base
     case field_format
       when 'string', 'text', 'list', 'date', 'bool'
         # COALESCE is here to make sure that blank and NULL values are sorted equally
+        self.custom_values.first.to_sql
         "COALESCE((SELECT cv_sort.value FROM #{CustomValue.table_name} cv_sort" +
-          " WHERE cv_sort.customized_type='#{self.class.customized_class.name}'" +
+          " WHERE cv_sort.customized_type='#{self.class.customized_class.base_class.name}'" +
           " AND cv_sort.customized_id=#{self.class.customized_class.table_name}.id" +
           " AND cv_sort.custom_field_id=#{id} LIMIT 1), '')"
       when 'int', 'float'
@@ -148,7 +149,7 @@ class CustomField < ActiveRecord::Base
         # Postgresql will raise an error if a value can not be casted!
         # CustomValue validations should ensure that it doesn't occur
         "(SELECT CAST(cv_sort.value AS decimal(60,3)) FROM #{CustomValue.table_name} cv_sort" +
-          " WHERE cv_sort.customized_type='#{self.class.customized_class.name}'" +
+          " WHERE cv_sort.customized_type='#{self.class.customized_class.base_class.name}'" +
           " AND cv_sort.customized_id=#{self.class.customized_class.table_name}.id" +
           " AND cv_sort.custom_field_id=#{id} AND cv_sort.value <> '' AND cv_sort.value IS NOT NULL LIMIT 1)"
       else