diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2013-10-15 16:38:17 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2013-10-15 16:38:17 +0000 |
commit | 3172359f9704d7c97adc60883d9ca5ec076c7667 (patch) | |
tree | 346f03c71f621a560bf1ce273d8d09ca31e38c4b /app/models/issue_query.rb | |
parent | 758cc2f2e6eda211d6e38c467ce56532a2e23600 (diff) | |
download | redmine-3172359f9704d7c97adc60883d9ca5ec076c7667.tar.gz redmine-3172359f9704d7c97adc60883d9ca5ec076c7667.zip |
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
Diffstat (limited to 'app/models/issue_query.rb')
-rw-r--r-- | app/models/issue_query.rb | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/app/models/issue_query.rb b/app/models/issue_query.rb index 56ef9f08e..66f520d64 100644 --- a/app/models/issue_query.rb +++ b/app/models/issue_query.rb @@ -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) |