|
|
@@ -1154,11 +1154,13 @@ class Issue < ActiveRecord::Base |
|
|
|
def self.load_visible_last_updated_by(issues, user=User.current) |
|
|
|
if issues.any? |
|
|
|
issue_ids = issues.map(&:id) |
|
|
|
journals = Journal.joins(issue: :project).preload(:user). |
|
|
|
journal_ids = Journal.joins(issue: :project). |
|
|
|
where(:journalized_type => 'Issue', :journalized_id => issue_ids). |
|
|
|
where("#{Journal.table_name}.id = (SELECT MAX(j.id) FROM #{Journal.table_name} j" + |
|
|
|
" WHERE j.journalized_type='Issue' AND j.journalized_id=#{Journal.table_name}.journalized_id" + |
|
|
|
" AND #{Journal.visible_notes_condition(user, :skip_pre_condition => true)})").to_a |
|
|
|
where(Journal.visible_notes_condition(user, :skip_pre_condition => true)). |
|
|
|
group(:journalized_id). |
|
|
|
maximum(:id). |
|
|
|
values |
|
|
|
journals = Journal.where(:id => journal_ids).to_a |
|
|
|
|
|
|
|
issues.each do |issue| |
|
|
|
journal = journals.detect {|j| j.journalized_id == issue.id} |
|
|
@@ -1171,12 +1173,14 @@ class Issue < ActiveRecord::Base |
|
|
|
def self.load_visible_last_notes(issues, user=User.current) |
|
|
|
if issues.any? |
|
|
|
issue_ids = issues.map(&:id) |
|
|
|
journals = Journal.joins(issue: :project). |
|
|
|
journal_ids = Journal.joins(issue: :project). |
|
|
|
where(:journalized_type => 'Issue', :journalized_id => issue_ids). |
|
|
|
where("#{Journal.table_name}.id = (SELECT MAX(j.id) FROM #{Journal.table_name} j" + |
|
|
|
" WHERE j.journalized_type='Issue' AND j.journalized_id=#{Journal.table_name}.journalized_id" + |
|
|
|
" AND j.notes <> ''" + |
|
|
|
" AND #{Journal.visible_notes_condition(user, :skip_pre_condition => true)})").to_a |
|
|
|
where(Journal.visible_notes_condition(user, :skip_pre_condition => true)). |
|
|
|
where.not(notes: ''). |
|
|
|
group(:journalized_id). |
|
|
|
maximum(:id). |
|
|
|
values |
|
|
|
journals = Journal.where(:id => journal_ids).to_a |
|
|
|
|
|
|
|
issues.each do |issue| |
|
|
|
journal = journals.detect {|j| j.journalized_id == issue.id} |