Bläddra i källkod

Avoid N queries when displaying the issue list with custom fields.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@12223 e93f8b46-1217-0410-a6f0-8f06a7374b81
tags/2.4.0
Jean-Philippe Lang 10 år sedan
förälder
incheckning
3172359f97
2 ändrade filer med 12 tillägg och 3 borttagningar
  1. 8
    3
      app/models/issue_query.rb
  2. 4
    0
      app/models/query.rb

+ 8
- 3
app/models/issue_query.rb Visa fil

@@ -323,7 +323,7 @@ class IssueQuery < Query
def issues(options={})
order_option = [group_by_sort_order, options[:order]].flatten.reject(&:blank?)

issues = Issue.visible.
scope = Issue.visible.
joins(:status, :project).
where(statement).
includes(([:status, :project] + (options[:include] || [])).uniq).
@@ -331,8 +331,13 @@ class IssueQuery < Query
order(order_option).
joins(joins_for_order_statement(order_option.join(','))).
limit(options[:limit]).
offset(options[:offset]).
all
offset(options[:offset])

if has_custom_field_column?
scope = scope.preload(:custom_values)
end

issues = scope.all

if has_column?(:spent_hours)
Issue.load_visible_spent_hours(issues)

+ 4
- 0
app/models/query.rb Visa fil

@@ -449,6 +449,10 @@ class Query < ActiveRecord::Base
column_names && column_names.include?(column.is_a?(QueryColumn) ? column.name : column)
end

def has_custom_field_column?
columns.any? {|column| column.is_a? QueryCustomFieldColumn}
end

def has_default_columns?
column_names.nil? || column_names.empty?
end

Laddar…
Avbryt
Spara