diff options
author | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2016-02-16 19:29:11 -0200 |
---|---|---|
committer | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2016-02-20 12:10:26 -0200 |
commit | 49cd19652ade0eb81126caa590461e8340d63d26 (patch) | |
tree | e696dd625da985dbda5571bfbda74c20423f9630 /app | |
parent | 917081fe9dd3da2995faf8f5555ed120ec4c4ea5 (diff) | |
download | gitlab-ce-49cd19652ade0eb81126caa590461e8340d63d26.tar.gz |
Mark pending tasks for the note author as done when he left a note
Diffstat (limited to 'app')
-rw-r--r-- | app/services/notes/post_process_service.rb | 4 | ||||
-rw-r--r-- | app/services/task_service.rb | 11 |
2 files changed, 13 insertions, 2 deletions
diff --git a/app/services/notes/post_process_service.rb b/app/services/notes/post_process_service.rb index f37d3c50cdd..465b246cabc 100644 --- a/app/services/notes/post_process_service.rb +++ b/app/services/notes/post_process_service.rb @@ -1,6 +1,5 @@ module Notes class PostProcessService - attr_accessor :note def initialize(note) @@ -14,6 +13,8 @@ module Notes @note.create_cross_references! execute_note_hooks end + + TaskService.new.new_note(note) end def hook_data @@ -25,6 +26,5 @@ module Notes @note.project.execute_hooks(note_data, :note_hooks) @note.project.execute_services(note_data, :note_hooks) end - end end diff --git a/app/services/task_service.rb b/app/services/task_service.rb index 0d66f89e997..e58974a9b38 100644 --- a/app/services/task_service.rb +++ b/app/services/task_service.rb @@ -43,6 +43,17 @@ class TaskService pending_tasks.update_all(state: :done) end + # When create a note we should: + # + # * mark all pending tasks related to the noteable for the note author as done + # + def new_note(note) + # Skip system notes, like status changes and cross-references + unless note.system + mark_as_done(note.noteable, note.author) + end + end + private def create_task(project, target, author, user, action) |