From d9a949c17c29c8531b2b0a1c227ab0b3341f0ba3 Mon Sep 17 00:00:00 2001 From: Douwe Maan Date: Thu, 28 Jul 2016 21:14:45 -0600 Subject: [PATCH] Use correct user for 'Discussion resolved by...' --- app/models/discussion.rb | 13 ++++++++++++- app/models/merge_request.rb | 9 ++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app/models/discussion.rb b/app/models/discussion.rb index 3efa2c0649f..88de62d19e0 100644 --- a/app/models/discussion.rb +++ b/app/models/discussion.rb @@ -21,7 +21,8 @@ class Discussion delegate :resolved_at, :resolved_by, - to: :last_note + to: :last_resolved_note, + allow_nil: true delegate :blob, :highlighted_diff_lines, to: :diff_file, allow_nil: true @@ -39,6 +40,12 @@ class Discussion @notes = notes end + def last_resolved_note + return unless resolved? + + @last_resolved_note ||= resolved_notes.sort_by(&:resolved_at).last + end + def last_updated_at last_note.created_at end @@ -67,6 +74,10 @@ class Discussion resolvable? && notes.none?(&:to_be_resolved?) end + def resolved_notes + notes.select(&:resolved?) + end + def to_be_resolved? notes.any?(&:to_be_resolved?) end diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 484e37ff31a..a622081e129 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -395,15 +395,18 @@ class MergeRequest < ActiveRecord::Base end def discussions - self.mr_and_commit_notes. + @discussions ||= self.mr_and_commit_notes. inc_author_project_award_emoji. fresh. discussions end + def discussions_resolvable? + discussions.any?(&:resolvable?) + end + def discussions_resolved? - all_discussions = discussions - all_discussions.any?(&:resolvable?) && all_discussions.none?(&:to_be_resolved?) + discussions_resolvable? && discussions.none?(&:to_be_resolved?) end def hook_attrs