diff --git a/app/models/issue_query.rb b/app/models/issue_query.rb index 3e2e7a6..6175055 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 7a70af6..dc39474 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