Merge branch 'kradydal/gitlab-ce-create-todos-when-issue-author-assigne-or-mention-himself'
This commit is contained in:
commit
73b03aa8eb
3 changed files with 22 additions and 17 deletions
|
@ -100,6 +100,7 @@ v 8.10.0 (unreleased)
|
|||
- Fix last update timestamp on issues not preserved on gitlab.com and project imports
|
||||
- Fix issues importing projects from EE to CE
|
||||
- Fix creating group with space in group path
|
||||
- Create Todos for Issue author when assign or mention himself (Katarzyna Kobierska)
|
||||
|
||||
v 8.9.6
|
||||
- Fix importing of events under notes for GitLab projects. !5154
|
||||
|
|
|
@ -194,7 +194,7 @@ class TodoService
|
|||
end
|
||||
|
||||
def create_assignment_todo(issuable, author)
|
||||
if issuable.assignee && issuable.assignee != author
|
||||
if issuable.assignee
|
||||
attributes = attributes_for_todo(issuable.project, issuable, author, Todo::ASSIGNED)
|
||||
create_todos(issuable.assignee, attributes)
|
||||
end
|
||||
|
@ -239,7 +239,6 @@ class TodoService
|
|||
def filter_mentioned_users(project, target, author)
|
||||
mentioned_users = target.mentioned_users(author)
|
||||
mentioned_users = reject_users_without_access(mentioned_users, project, target)
|
||||
mentioned_users.delete(author)
|
||||
mentioned_users.uniq
|
||||
end
|
||||
|
||||
|
|
|
@ -35,8 +35,11 @@ describe TodoService, services: true do
|
|||
should_not_create_any_todo { service.new_issue(unassigned_issue, author) }
|
||||
end
|
||||
|
||||
it 'does not create a todo if assignee is the current user' do
|
||||
should_not_create_any_todo { service.new_issue(unassigned_issue, john_doe) }
|
||||
it 'creates a todo if assignee is the current user' do
|
||||
unassigned_issue.update_attribute(:assignee, john_doe)
|
||||
service.new_issue(unassigned_issue, john_doe)
|
||||
|
||||
should_create_todo(user: john_doe, target: unassigned_issue, author: john_doe, action: Todo::ASSIGNED)
|
||||
end
|
||||
|
||||
it 'creates a todo for each valid mentioned user' do
|
||||
|
@ -44,7 +47,7 @@ describe TodoService, services: true do
|
|||
|
||||
should_create_todo(user: member, target: issue, action: Todo::MENTIONED)
|
||||
should_create_todo(user: guest, target: issue, action: Todo::MENTIONED)
|
||||
should_not_create_todo(user: author, target: issue, action: Todo::MENTIONED)
|
||||
should_create_todo(user: author, target: issue, action: Todo::MENTIONED)
|
||||
should_not_create_todo(user: john_doe, target: issue, action: Todo::MENTIONED)
|
||||
should_not_create_todo(user: non_member, target: issue, action: Todo::MENTIONED)
|
||||
end
|
||||
|
@ -57,7 +60,7 @@ describe TodoService, services: true do
|
|||
should_create_todo(user: member, target: confidential_issue, author: john_doe, action: Todo::MENTIONED)
|
||||
should_create_todo(user: admin, target: confidential_issue, author: john_doe, action: Todo::MENTIONED)
|
||||
should_not_create_todo(user: guest, target: confidential_issue, author: john_doe, action: Todo::MENTIONED)
|
||||
should_not_create_todo(user: john_doe, target: confidential_issue, author: john_doe, action: Todo::MENTIONED)
|
||||
should_create_todo(user: john_doe, target: confidential_issue, author: john_doe, action: Todo::MENTIONED)
|
||||
end
|
||||
|
||||
context 'when a private group is mentioned' do
|
||||
|
@ -87,7 +90,7 @@ describe TodoService, services: true do
|
|||
should_create_todo(user: member, target: issue, action: Todo::MENTIONED)
|
||||
should_create_todo(user: guest, target: issue, action: Todo::MENTIONED)
|
||||
should_create_todo(user: john_doe, target: issue, action: Todo::MENTIONED)
|
||||
should_not_create_todo(user: author, target: issue, action: Todo::MENTIONED)
|
||||
should_create_todo(user: author, target: issue, action: Todo::MENTIONED)
|
||||
should_not_create_todo(user: non_member, target: issue, action: Todo::MENTIONED)
|
||||
end
|
||||
|
||||
|
@ -105,7 +108,7 @@ describe TodoService, services: true do
|
|||
should_create_todo(user: member, target: confidential_issue, author: john_doe, action: Todo::MENTIONED)
|
||||
should_create_todo(user: admin, target: confidential_issue, author: john_doe, action: Todo::MENTIONED)
|
||||
should_not_create_todo(user: guest, target: confidential_issue, author: john_doe, action: Todo::MENTIONED)
|
||||
should_not_create_todo(user: john_doe, target: confidential_issue, author: john_doe, action: Todo::MENTIONED)
|
||||
should_create_todo(user: john_doe, target: confidential_issue, author: john_doe, action: Todo::MENTIONED)
|
||||
end
|
||||
|
||||
context 'issues with a task list' do
|
||||
|
@ -156,10 +159,11 @@ describe TodoService, services: true do
|
|||
should_not_create_any_todo { service.reassigned_issue(issue, author) }
|
||||
end
|
||||
|
||||
it 'does not create a todo if new assignee is the current user' do
|
||||
it 'creates a todo if new assignee is the current user' do
|
||||
unassigned_issue.update_attribute(:assignee, john_doe)
|
||||
service.reassigned_issue(unassigned_issue, john_doe)
|
||||
|
||||
should_not_create_any_todo { service.reassigned_issue(unassigned_issue, john_doe) }
|
||||
should_create_todo(user: john_doe, target: unassigned_issue, author: john_doe, action: Todo::ASSIGNED)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -250,7 +254,7 @@ describe TodoService, services: true do
|
|||
should_create_todo(user: member, target: issue, author: john_doe, action: Todo::MENTIONED, note: note)
|
||||
should_create_todo(user: guest, target: issue, author: john_doe, action: Todo::MENTIONED, note: note)
|
||||
should_create_todo(user: author, target: issue, author: john_doe, action: Todo::MENTIONED, note: note)
|
||||
should_not_create_todo(user: john_doe, target: issue, author: john_doe, action: Todo::MENTIONED, note: note)
|
||||
should_create_todo(user: john_doe, target: issue, author: john_doe, action: Todo::MENTIONED, note: note)
|
||||
should_not_create_todo(user: non_member, target: issue, author: john_doe, action: Todo::MENTIONED, note: note)
|
||||
end
|
||||
|
||||
|
@ -262,7 +266,7 @@ describe TodoService, services: true do
|
|||
should_create_todo(user: member, target: confidential_issue, author: john_doe, action: Todo::MENTIONED, note: note_on_confidential_issue)
|
||||
should_create_todo(user: admin, target: confidential_issue, author: john_doe, action: Todo::MENTIONED, note: note_on_confidential_issue)
|
||||
should_not_create_todo(user: guest, target: confidential_issue, author: john_doe, action: Todo::MENTIONED, note: note_on_confidential_issue)
|
||||
should_not_create_todo(user: john_doe, target: confidential_issue, author: john_doe, action: Todo::MENTIONED, note: note_on_confidential_issue)
|
||||
should_create_todo(user: john_doe, target: confidential_issue, author: john_doe, action: Todo::MENTIONED, note: note_on_confidential_issue)
|
||||
end
|
||||
|
||||
it 'creates a todo for each valid mentioned user when leaving a note on commit' do
|
||||
|
@ -270,7 +274,7 @@ describe TodoService, services: true do
|
|||
|
||||
should_create_todo(user: member, target_id: nil, target_type: 'Commit', commit_id: note_on_commit.commit_id, author: john_doe, action: Todo::MENTIONED, note: note_on_commit)
|
||||
should_create_todo(user: author, target_id: nil, target_type: 'Commit', commit_id: note_on_commit.commit_id, author: john_doe, action: Todo::MENTIONED, note: note_on_commit)
|
||||
should_not_create_todo(user: john_doe, target_id: nil, target_type: 'Commit', commit_id: note_on_commit.commit_id, author: john_doe, action: Todo::MENTIONED, note: note_on_commit)
|
||||
should_create_todo(user: john_doe, target_id: nil, target_type: 'Commit', commit_id: note_on_commit.commit_id, author: john_doe, action: Todo::MENTIONED, note: note_on_commit)
|
||||
should_not_create_todo(user: non_member, target_id: nil, target_type: 'Commit', commit_id: note_on_commit.commit_id, author: john_doe, action: Todo::MENTIONED, note: note_on_commit)
|
||||
end
|
||||
|
||||
|
@ -312,7 +316,7 @@ describe TodoService, services: true do
|
|||
|
||||
should_create_todo(user: member, target: mr_assigned, action: Todo::MENTIONED)
|
||||
should_create_todo(user: guest, target: mr_assigned, action: Todo::MENTIONED)
|
||||
should_not_create_todo(user: author, target: mr_assigned, action: Todo::MENTIONED)
|
||||
should_create_todo(user: author, target: mr_assigned, action: Todo::MENTIONED)
|
||||
should_not_create_todo(user: john_doe, target: mr_assigned, action: Todo::MENTIONED)
|
||||
should_not_create_todo(user: non_member, target: mr_assigned, action: Todo::MENTIONED)
|
||||
end
|
||||
|
@ -325,7 +329,7 @@ describe TodoService, services: true do
|
|||
should_create_todo(user: member, target: mr_assigned, action: Todo::MENTIONED)
|
||||
should_create_todo(user: guest, target: mr_assigned, action: Todo::MENTIONED)
|
||||
should_create_todo(user: john_doe, target: mr_assigned, action: Todo::MENTIONED)
|
||||
should_not_create_todo(user: author, target: mr_assigned, action: Todo::MENTIONED)
|
||||
should_create_todo(user: author, target: mr_assigned, action: Todo::MENTIONED)
|
||||
should_not_create_todo(user: non_member, target: mr_assigned, action: Todo::MENTIONED)
|
||||
end
|
||||
|
||||
|
@ -382,10 +386,11 @@ describe TodoService, services: true do
|
|||
should_not_create_any_todo { service.reassigned_merge_request(mr_assigned, author) }
|
||||
end
|
||||
|
||||
it 'does not create a todo if new assignee is the current user' do
|
||||
it 'creates a todo if new assignee is the current user' do
|
||||
mr_assigned.update_attribute(:assignee, john_doe)
|
||||
service.reassigned_merge_request(mr_assigned, john_doe)
|
||||
|
||||
should_not_create_any_todo { service.reassigned_merge_request(mr_assigned, john_doe) }
|
||||
should_create_todo(user: john_doe, target: mr_assigned, author: john_doe, action: Todo::ASSIGNED)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue