OSDN Git Service

Reverts r3072 (#4302: error raised when sorting on an association not included as...
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Fri, 27 Nov 2009 19:59:10 +0000 (19:59 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Fri, 27 Nov 2009 19:59:10 +0000 (19:59 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3097 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/issues_controller.rb
app/models/query.rb
test/unit/query_test.rb

index 1f72e8f..2578b78 100644 (file)
@@ -64,7 +64,7 @@ class IssuesController < ApplicationController
       @issue_count = Issue.count(:include => [:status, :project], :conditions => @query.statement)
       @issue_pages = Paginator.new self, @issue_count, limit, params['page']
       @issues = Issue.find :all, :order => [@query.group_by_sort_order, sort_clause].compact.join(','),
-                           :include => ([:status, :project, :priority] + @query.include_options),
+      :include => [ :assigned_to, :status, :tracker, :project, :priority, :category, :fixed_version ],
                            :conditions => @query.statement,
                            :limit  =>  limit,
                            :offset =>  @issue_pages.current.offset
index abcf092..816c5c5 100644 (file)
@@ -16,7 +16,7 @@
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
 class QueryColumn  
-  attr_accessor :name, :sortable, :groupable, :default_order, :include_options
+  attr_accessor :name, :sortable, :groupable, :default_order
   include Redmine::I18n
   
   def initialize(name, options={})
@@ -27,7 +27,6 @@ class QueryColumn
       self.groupable = name.to_s
     end
     self.default_order = options[:default_order]
-    self.include_options = options[:include]
   end
   
   def caption
@@ -49,7 +48,6 @@ class QueryCustomFieldColumn < QueryColumn
       self.groupable = custom_field.order_statement
     end
     self.groupable ||= false
-    self.include_options = :custom_values
     @cf = custom_field
   end
   
@@ -109,15 +107,15 @@ class Query < ActiveRecord::Base
 
   @@available_columns = [
     QueryColumn.new(:project, :sortable => "#{Project.table_name}.name", :groupable => true),
-    QueryColumn.new(:tracker, :sortable => "#{Tracker.table_name}.position", :groupable => true, :include => :tracker),
+    QueryColumn.new(:tracker, :sortable => "#{Tracker.table_name}.position", :groupable => true),
     QueryColumn.new(:status, :sortable => "#{IssueStatus.table_name}.position", :groupable => true),
     QueryColumn.new(:priority, :sortable => "#{IssuePriority.table_name}.position", :default_order => 'desc', :groupable => true),
     QueryColumn.new(:subject, :sortable => "#{Issue.table_name}.subject"),
     QueryColumn.new(:author),
-    QueryColumn.new(:assigned_to, :sortable => ["#{User.table_name}.lastname", "#{User.table_name}.firstname", "#{User.table_name}.id"], :groupable => true, :include => :assigned_to),
+    QueryColumn.new(:assigned_to, :sortable => ["#{User.table_name}.lastname", "#{User.table_name}.firstname", "#{User.table_name}.id"], :groupable => true),
     QueryColumn.new(:updated_on, :sortable => "#{Issue.table_name}.updated_on", :default_order => 'desc'),
-    QueryColumn.new(:category, :sortable => "#{IssueCategory.table_name}.name", :groupable => true, :include => :category),
-    QueryColumn.new(:fixed_version, :sortable => ["#{Version.table_name}.effective_date", "#{Version.table_name}.name"], :default_order => 'desc', :groupable => true, :include => :fixed_version),
+    QueryColumn.new(:category, :sortable => "#{IssueCategory.table_name}.name", :groupable => true),
+    QueryColumn.new(:fixed_version, :sortable => ["#{Version.table_name}.effective_date", "#{Version.table_name}.name"], :default_order => 'desc', :groupable => true),
     QueryColumn.new(:start_date, :sortable => "#{Issue.table_name}.start_date"),
     QueryColumn.new(:due_date, :sortable => "#{Issue.table_name}.due_date"),
     QueryColumn.new(:estimated_hours, :sortable => "#{Issue.table_name}.estimated_hours"),
@@ -324,10 +322,6 @@ class Query < ActiveRecord::Base
   def group_by_statement
     group_by_column.groupable
   end
-
-  def include_options
-    (columns << group_by_column).collect {|column| column && column.include_options}.flatten.compact.uniq
-  end
   
   def project_statement
     project_clauses = []
index d2c95b4..27aed0c 100644 (file)
@@ -202,15 +202,6 @@ class QueryTest < ActiveSupport::TestCase
     assert q.groupable_columns.detect {|c| c.is_a? QueryCustomFieldColumn}
   end
   
-  def test_include_options
-    q = Query.new
-    q.column_names = %w(subject tracker)
-    assert_equal [:tracker], q.include_options
-    
-    q.group_by = 'category'
-    assert_equal [:tracker, :category], q.include_options
-  end
-  
   def test_default_sort
     q = Query.new
     assert_equal [], q.sort_criteria