diff options
| author | Sean McGivern <sean@mcgivern.me.uk> | 2017-10-09 14:16:38 +0000 |
|---|---|---|
| committer | Sean McGivern <sean@mcgivern.me.uk> | 2017-10-09 14:16:38 +0000 |
| commit | a550942de1085eae4c60c498097ab191f8acfc0c (patch) | |
| tree | a4a3944c7174baaca529ebf67f1434ae8407bf1a /app | |
| parent | 9fe93e3c3ad3f4896c91d5dde62e879c8d939be2 (diff) | |
| parent | d6612fbcee7245325ee9799f49b5ea46a5037308 (diff) | |
| download | gitlab-ce-a550942de1085eae4c60c498097ab191f8acfc0c.tar.gz | |
Merge branch 'jk-assignees-todos-fix' into 'master'
CE Backport of "Don't create todos for old issue assignees"
See merge request gitlab-org/gitlab-ce!14765
Diffstat (limited to 'app')
| -rw-r--r-- | app/services/issues/update_service.rb | 2 | ||||
| -rw-r--r-- | app/services/todo_service.rb | 9 |
2 files changed, 6 insertions, 5 deletions
diff --git a/app/services/issues/update_service.rb b/app/services/issues/update_service.rb index b4ca3966505..e0339ddf9bb 100644 --- a/app/services/issues/update_service.rb +++ b/app/services/issues/update_service.rb @@ -34,7 +34,7 @@ module Issues if issue.assignees != old_assignees create_assignee_note(issue, old_assignees) notification_service.reassigned_issue(issue, current_user, old_assignees) - todo_service.reassigned_issue(issue, current_user) + todo_service.reassigned_issue(issue, current_user, old_assignees) end if issue.previous_changes.include?('confidential') diff --git a/app/services/todo_service.rb b/app/services/todo_service.rb index 6ee96d6a0f8..b6125cafa83 100644 --- a/app/services/todo_service.rb +++ b/app/services/todo_service.rb @@ -43,8 +43,8 @@ class TodoService # # * create a pending todo for new assignee if issue is assigned # - def reassigned_issue(issue, current_user) - create_assignment_todo(issue, current_user) + def reassigned_issue(issue, current_user, old_assignees = []) + create_assignment_todo(issue, current_user, old_assignees) end # When create a merge request we should: @@ -254,10 +254,11 @@ class TodoService create_mention_todos(project, target, author, note, skip_users) end - def create_assignment_todo(issuable, author) + def create_assignment_todo(issuable, author, old_assignees = []) if issuable.assignees.any? + assignees = issuable.assignees - old_assignees attributes = attributes_for_todo(issuable.project, issuable, author, Todo::ASSIGNED) - create_todos(issuable.assignees, attributes) + create_todos(assignees, attributes) end end |
