diff options
Diffstat (limited to 'app/models/out_of_context_discussion.rb')
-rw-r--r-- | app/models/out_of_context_discussion.rb | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/app/models/out_of_context_discussion.rb b/app/models/out_of_context_discussion.rb new file mode 100644 index 00000000000..4227c40b69a --- /dev/null +++ b/app/models/out_of_context_discussion.rb @@ -0,0 +1,26 @@ +# When notes on a commit are displayed in the context of a merge request that +# contains that commit, they are displayed as if they were a discussion. +# +# This represents one of those discussions, consisting of `Note` notes. +# +# A discussion of this type is never resolvable. +class OutOfContextDiscussion < Discussion + # Returns an array of discussion ID components + def self.build_discussion_id(note) + base_discussion_id(note) + end + + # To make sure all out-of-context notes end up grouped as one discussion, + # we override the discussion ID to be a newly generated but consistent ID. + def self.override_discussion_id(note) + discussion_id(note) + end + + def self.note_class + Note + end + + def reply_attributes + super.tap { |attrs| attrs.delete(:discussion_id) } + end +end |