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
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Tatuya Kamada
gitlab-ce
Commits
0253c949
Commit
0253c949
authored
Jan 12, 2014
by
Dmitriy Zaporozhets
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #5933 from dblessing/feature/assignee_changes_in_timeline
Add note for assignee changes
parents
cadbd3f0
09cbe95b
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
48 additions
and
0 deletions
+48
-0
app/models/note.rb
app/models/note.rb
+12
-0
app/observers/issue_observer.rb
app/observers/issue_observer.rb
+5
-0
spec/models/note_spec.rb
spec/models/note_spec.rb
+31
-0
No files found.
app/models/note.rb
View file @
0253c949
...
@@ -82,6 +82,18 @@ class Note < ActiveRecord::Base
...
@@ -82,6 +82,18 @@ class Note < ActiveRecord::Base
},
without_protection:
true
)
},
without_protection:
true
)
end
end
def
create_assignee_change_note
(
noteable
,
project
,
author
,
assignee
)
body
=
assignee
.
nil?
?
'_Assignee removed_'
:
"_Reassigned to @
#{
assignee
.
username
}
_"
create
({
noteable:
noteable
,
project:
project
,
author:
author
,
note:
body
,
system:
true
},
without_protection:
true
)
end
def
discussions_from_notes
(
notes
)
def
discussions_from_notes
(
notes
)
discussion_ids
=
[]
discussion_ids
=
[]
discussions
=
[]
discussions
=
[]
...
...
app/observers/issue_observer.rb
View file @
0253c949
...
@@ -19,6 +19,7 @@ class IssueObserver < BaseObserver
...
@@ -19,6 +19,7 @@ class IssueObserver < BaseObserver
def
after_update
(
issue
)
def
after_update
(
issue
)
if
issue
.
is_being_reassigned?
if
issue
.
is_being_reassigned?
notification
.
reassigned_issue
(
issue
,
current_user
)
notification
.
reassigned_issue
(
issue
,
current_user
)
create_assignee_note
(
issue
)
end
end
issue
.
notice_added_references
(
issue
.
project
,
current_user
)
issue
.
notice_added_references
(
issue
.
project
,
current_user
)
...
@@ -32,6 +33,10 @@ class IssueObserver < BaseObserver
...
@@ -32,6 +33,10 @@ class IssueObserver < BaseObserver
Note
.
create_status_change_note
(
issue
,
issue
.
project
,
current_user
,
issue
.
state
,
current_commit
)
Note
.
create_status_change_note
(
issue
,
issue
.
project
,
current_user
,
issue
.
state
,
current_commit
)
end
end
def
create_assignee_note
(
issue
)
Note
.
create_assignee_change_note
(
issue
,
issue
.
project
,
current_user
,
issue
.
assignee
)
end
def
execute_hooks
(
issue
)
def
execute_hooks
(
issue
)
issue
.
project
.
execute_hooks
(
issue
.
to_hook_data
,
:issue_hooks
)
issue
.
project
.
execute_hooks
(
issue
.
to_hook_data
,
:issue_hooks
)
end
end
...
...
spec/models/note_spec.rb
View file @
0253c949
...
@@ -180,6 +180,31 @@ describe Note do
...
@@ -180,6 +180,31 @@ describe Note do
end
end
end
end
describe
'#create_assignee_change_note'
do
let
(
:project
)
{
create
(
:project
)
}
let
(
:thing
)
{
create
(
:issue
,
project:
project
)
}
let
(
:author
)
{
create
(
:user
)
}
let
(
:assignee
)
{
create
(
:user
)
}
subject
{
Note
.
create_assignee_change_note
(
thing
,
project
,
author
,
assignee
)
}
context
'creates and saves a Note'
do
it
{
should
be_a
Note
}
its
(
:id
)
{
should_not
be_nil
}
end
its
(
:noteable
)
{
should
==
thing
}
its
(
:project
)
{
should
==
thing
.
project
}
its
(
:author
)
{
should
==
author
}
its
(
:note
)
{
should
=~
/Reassigned to @
#{
assignee
.
username
}
/
}
context
'assignee is removed'
do
let
(
:assignee
)
{
nil
}
its
(
:note
)
{
should
=~
/Assignee removed/
}
end
end
describe
'#create_cross_reference_note'
do
describe
'#create_cross_reference_note'
do
let
(
:project
)
{
create
(
:project_with_code
)
}
let
(
:project
)
{
create
(
:project_with_code
)
}
let
(
:author
)
{
create
(
:user
)
}
let
(
:author
)
{
create
(
:user
)
}
...
@@ -252,6 +277,7 @@ describe Note do
...
@@ -252,6 +277,7 @@ describe Note do
let
(
:issue
)
{
create
(
:issue
,
project:
project
)
}
let
(
:issue
)
{
create
(
:issue
,
project:
project
)
}
let
(
:other
)
{
create
(
:issue
,
project:
project
)
}
let
(
:other
)
{
create
(
:issue
,
project:
project
)
}
let
(
:author
)
{
create
(
:user
)
}
let
(
:author
)
{
create
(
:user
)
}
let
(
:assignee
)
{
create
(
:user
)
}
it
'should recognize user-supplied notes as non-system'
do
it
'should recognize user-supplied notes as non-system'
do
@note
=
create
(
:note_on_issue
)
@note
=
create
(
:note_on_issue
)
...
@@ -267,6 +293,11 @@ describe Note do
...
@@ -267,6 +293,11 @@ describe Note do
@note
=
Note
.
create_cross_reference_note
(
issue
,
other
,
author
,
project
)
@note
=
Note
.
create_cross_reference_note
(
issue
,
other
,
author
,
project
)
@note
.
should
be_system
@note
.
should
be_system
end
end
it
'should identify assignee-change notes as system notes'
do
@note
=
Note
.
create_assignee_change_note
(
issue
,
project
,
author
,
assignee
)
@note
.
should
be_system
end
end
end
describe
:authorization
do
describe
:authorization
do
...
...
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