diff options
author | Douwe Maan <douwe@selenight.nl> | 2016-07-25 22:37:22 -0600 |
---|---|---|
committer | Douwe Maan <douwe@selenight.nl> | 2016-07-25 22:37:22 -0600 |
commit | bbab5d014f10914b1e5d7a73dc0e85ea57344979 (patch) | |
tree | 884dcc73862c6d840f84eaacda0db2a1ecff99dc /app | |
parent | c9aee48ced1bf9b4bec758be80791b6cbaccd335 (diff) | |
download | gitlab-ce-bbab5d014f10914b1e5d7a73dc0e85ea57344979.tar.gz |
Add methods to resolve diff notes and discussions
Diffstat (limited to 'app')
-rw-r--r-- | app/models/diff_note.rb | 18 | ||||
-rw-r--r-- | app/models/discussion.rb | 12 |
2 files changed, 30 insertions, 0 deletions
diff --git a/app/models/diff_note.rb b/app/models/diff_note.rb index d76ac51af0f..3edbdf9f966 100644 --- a/app/models/diff_note.rb +++ b/app/models/diff_note.rb @@ -85,6 +85,24 @@ class DiffNote < Note self.resolved_at.present? end + def resolve!(current_user) + return unless resolvable? + return if resolved? + + self.resolved_at = Time.now + self.resolved_by = current_user + save! + end + + def unresolve! + return unless resolvable? + return unless resolved? + + self.resolved_at = nil + self.resolved_by = nil + save! + end + private def supported? diff --git a/app/models/discussion.rb b/app/models/discussion.rb index ff85e2038a7..64116d225ae 100644 --- a/app/models/discussion.rb +++ b/app/models/discussion.rb @@ -63,6 +63,18 @@ class Discussion notes.any?(&:to_be_resolved?) end + def resolve!(current_user) + notes.each do |note| + note.resolve!(current_user) if note.resolvable? + end + end + + def unresolve! + notes.each do |note| + note.unresolve! if note.resolvable? + end + end + def for_target?(target) self.noteable == target && !diff_discussion? end |