Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
gitlab-ce
Commits
73b03aa8
Commit
73b03aa8
authored
Jul 15, 2016
by
Douwe Maan
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'kradydal/gitlab-ce-create-todos-when-issue-author-assigne-or-mention-himself'
parents
686381f7
ef892bc2
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
22 additions
and
17 deletions
+22
-17
CHANGELOG
CHANGELOG
+1
-0
app/services/todo_service.rb
app/services/todo_service.rb
+1
-2
spec/services/todo_service_spec.rb
spec/services/todo_service_spec.rb
+20
-15
No files found.
CHANGELOG
View file @
73b03aa8
...
@@ -100,6 +100,7 @@ v 8.10.0 (unreleased)
...
@@ -100,6 +100,7 @@ v 8.10.0 (unreleased)
- Fix last update timestamp on issues not preserved on gitlab.com and project imports
- Fix last update timestamp on issues not preserved on gitlab.com and project imports
- Fix issues importing projects from EE to CE
- Fix issues importing projects from EE to CE
- Fix creating group with space in group path
- Fix creating group with space in group path
- Create Todos for Issue author when assign or mention himself (Katarzyna Kobierska)
v 8.9.6
v 8.9.6
- Fix importing of events under notes for GitLab projects. !5154
- Fix importing of events under notes for GitLab projects. !5154
...
...
app/services/todo_service.rb
View file @
73b03aa8
...
@@ -194,7 +194,7 @@ class TodoService
...
@@ -194,7 +194,7 @@ class TodoService
end
end
def
create_assignment_todo
(
issuable
,
author
)
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
)
attributes
=
attributes_for_todo
(
issuable
.
project
,
issuable
,
author
,
Todo
::
ASSIGNED
)
create_todos
(
issuable
.
assignee
,
attributes
)
create_todos
(
issuable
.
assignee
,
attributes
)
end
end
...
@@ -239,7 +239,6 @@ class TodoService
...
@@ -239,7 +239,6 @@ class TodoService
def
filter_mentioned_users
(
project
,
target
,
author
)
def
filter_mentioned_users
(
project
,
target
,
author
)
mentioned_users
=
target
.
mentioned_users
(
author
)
mentioned_users
=
target
.
mentioned_users
(
author
)
mentioned_users
=
reject_users_without_access
(
mentioned_users
,
project
,
target
)
mentioned_users
=
reject_users_without_access
(
mentioned_users
,
project
,
target
)
mentioned_users
.
delete
(
author
)
mentioned_users
.
uniq
mentioned_users
.
uniq
end
end
...
...
spec/services/todo_service_spec.rb
View file @
73b03aa8
...
@@ -35,8 +35,11 @@ describe TodoService, services: true do
...
@@ -35,8 +35,11 @@ describe TodoService, services: true do
should_not_create_any_todo
{
service
.
new_issue
(
unassigned_issue
,
author
)
}
should_not_create_any_todo
{
service
.
new_issue
(
unassigned_issue
,
author
)
}
end
end
it
'does not create a todo if assignee is the current user'
do
it
'creates a todo if assignee is the current user'
do
should_not_create_any_todo
{
service
.
new_issue
(
unassigned_issue
,
john_doe
)
}
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
end
it
'creates a todo for each valid mentioned user'
do
it
'creates a todo for each valid mentioned user'
do
...
@@ -44,7 +47,7 @@ describe TodoService, services: true do
...
@@ -44,7 +47,7 @@ describe TodoService, services: true do
should_create_todo
(
user:
member
,
target:
issue
,
action:
Todo
::
MENTIONED
)
should_create_todo
(
user:
member
,
target:
issue
,
action:
Todo
::
MENTIONED
)
should_create_todo
(
user:
guest
,
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:
john_doe
,
target:
issue
,
action:
Todo
::
MENTIONED
)
should_not_create_todo
(
user:
non_member
,
target:
issue
,
action:
Todo
::
MENTIONED
)
should_not_create_todo
(
user:
non_member
,
target:
issue
,
action:
Todo
::
MENTIONED
)
end
end
...
@@ -57,7 +60,7 @@ describe TodoService, services: true do
...
@@ -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:
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_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:
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
end
context
'when a private group is mentioned'
do
context
'when a private group is mentioned'
do
...
@@ -87,7 +90,7 @@ describe TodoService, services: true do
...
@@ -87,7 +90,7 @@ describe TodoService, services: true do
should_create_todo
(
user:
member
,
target:
issue
,
action:
Todo
::
MENTIONED
)
should_create_todo
(
user:
member
,
target:
issue
,
action:
Todo
::
MENTIONED
)
should_create_todo
(
user:
guest
,
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_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
)
should_not_create_todo
(
user:
non_member
,
target:
issue
,
action:
Todo
::
MENTIONED
)
end
end
...
@@ -105,7 +108,7 @@ describe TodoService, services: true do
...
@@ -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:
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_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:
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
end
context
'issues with a task list'
do
context
'issues with a task list'
do
...
@@ -156,10 +159,11 @@ describe TodoService, services: true do
...
@@ -156,10 +159,11 @@ describe TodoService, services: true do
should_not_create_any_todo
{
service
.
reassigned_issue
(
issue
,
author
)
}
should_not_create_any_todo
{
service
.
reassigned_issue
(
issue
,
author
)
}
end
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
)
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
end
end
...
@@ -250,7 +254,7 @@ describe TodoService, services: true do
...
@@ -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:
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:
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_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
)
should_not_create_todo
(
user:
non_member
,
target:
issue
,
author:
john_doe
,
action:
Todo
::
MENTIONED
,
note:
note
)
end
end
...
@@ -262,7 +266,7 @@ describe TodoService, services: true do
...
@@ -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:
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_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:
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
end
it
'creates a todo for each valid mentioned user when leaving a note on commit'
do
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
...
@@ -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:
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_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
)
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
end
...
@@ -312,7 +316,7 @@ describe TodoService, services: true do
...
@@ -312,7 +316,7 @@ describe TodoService, services: true do
should_create_todo
(
user:
member
,
target:
mr_assigned
,
action:
Todo
::
MENTIONED
)
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:
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:
john_doe
,
target:
mr_assigned
,
action:
Todo
::
MENTIONED
)
should_not_create_todo
(
user:
non_member
,
target:
mr_assigned
,
action:
Todo
::
MENTIONED
)
should_not_create_todo
(
user:
non_member
,
target:
mr_assigned
,
action:
Todo
::
MENTIONED
)
end
end
...
@@ -325,7 +329,7 @@ describe TodoService, services: true do
...
@@ -325,7 +329,7 @@ describe TodoService, services: true do
should_create_todo
(
user:
member
,
target:
mr_assigned
,
action:
Todo
::
MENTIONED
)
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:
guest
,
target:
mr_assigned
,
action:
Todo
::
MENTIONED
)
should_create_todo
(
user:
john_doe
,
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
)
should_not_create_todo
(
user:
non_member
,
target:
mr_assigned
,
action:
Todo
::
MENTIONED
)
end
end
...
@@ -382,10 +386,11 @@ describe TodoService, services: true do
...
@@ -382,10 +386,11 @@ describe TodoService, services: true do
should_not_create_any_todo
{
service
.
reassigned_merge_request
(
mr_assigned
,
author
)
}
should_not_create_any_todo
{
service
.
reassigned_merge_request
(
mr_assigned
,
author
)
}
end
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
)
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
end
end
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment