From: Jean-Philippe Lang Date: Tue, 13 Dec 2016 19:46:31 +0000 (+0000) Subject: Improve custom fields list performance (#24587). X-Git-Tag: 3.4.0~507 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=9d1d3b825f1d4c898415c6ec372ae0c8b81e7f49;p=redmine.git Improve custom fields list performance (#24587). Patch by Thomas Löber. git-svn-id: http://svn.redmine.org/redmine/trunk@16069 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/controllers/custom_fields_controller.rb b/app/controllers/custom_fields_controller.rb index 26e9b044d..71e4394f5 100644 --- a/app/controllers/custom_fields_controller.rb +++ b/app/controllers/custom_fields_controller.rb @@ -28,6 +28,8 @@ class CustomFieldsController < ApplicationController respond_to do |format| format.html { @custom_fields_by_type = CustomField.all.group_by {|f| f.class.name } + @custom_fields_projects_count = + IssueCustomField.where(is_for_all: false).joins(:projects).group(:custom_field_id).count } format.api { @custom_fields = CustomField.all diff --git a/app/views/custom_fields/_index.html.erb b/app/views/custom_fields/_index.html.erb index 7a5d37283..0a5ff3ee1 100644 --- a/app/views/custom_fields/_index.html.erb +++ b/app/views/custom_fields/_index.html.erb @@ -18,7 +18,7 @@ <%= checked_image custom_field.is_required? %> <% if tab[:name] == 'IssueCustomField' %> <%= checked_image custom_field.is_for_all? %> - <%= l(:label_x_projects, :count => custom_field.projects.count) if custom_field.is_a? IssueCustomField and !custom_field.is_for_all? %> + <%= l(:label_x_projects, :count => @custom_fields_projects_count[custom_field.id]) if custom_field.is_a? IssueCustomField and !custom_field.is_for_all? %> <% end %> <%= reorder_handle(custom_field, :url => custom_field_path(custom_field), :param => 'custom_field') %>