From 82afdc7f78581d7c209926c0cce2eaee10915c4d Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Tue, 17 Jan 2017 19:41:35 +0000 Subject: [PATCH] Moves sort joins for issues to IssueQuery. git-svn-id: http://svn.redmine.org/redmine/trunk@16216 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/issue_query.rb | 12 ++++++++++++ app/models/query.rb | 3 --- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/app/models/issue_query.rb b/app/models/issue_query.rb index 3e2e7a64d..61750557a 100644 --- a/app/models/issue_query.rb +++ b/app/models/issue_query.rb @@ -505,4 +505,16 @@ class IssueQuery < Query IssueRelation::TYPES.keys.each do |relation_type| alias_method "sql_for_#{relation_type}_field".to_sym, :sql_for_relations end + + def joins_for_order_statement(order_options) + joins = [super] + + if order_options + if order_options.include?('authors') + joins << "LEFT OUTER JOIN #{User.table_name} authors ON authors.id = #{queried_table_name}.author_id" + end + end + + joins.any? ? joins.join(' ') : nil + end end diff --git a/app/models/query.rb b/app/models/query.rb index 7a70af620..dc3947400 100644 --- a/app/models/query.rb +++ b/app/models/query.rb @@ -1297,9 +1297,6 @@ class Query < ActiveRecord::Base joins = [] if order_options - if order_options.include?('authors') - joins << "LEFT OUTER JOIN #{User.table_name} authors ON authors.id = #{queried_table_name}.author_id" - end order_options.scan(/cf_\d+/).uniq.each do |name| column = available_columns.detect {|c| c.name.to_s == name} join = column && column.custom_field.join_for_order_statement -- 2.39.5