Commit a27c336e authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge branch 'assignement_change_notifications' into 'master'

Assignment change notifications

Fixes #1377
parents 30b72919 12f696c2
...@@ -301,7 +301,9 @@ class NotificationService ...@@ -301,7 +301,9 @@ class NotificationService
end end
def reassign_resource_email(target, project, current_user, method) def reassign_resource_email(target, project, current_user, method)
recipients = User.where(id: [target.assignee_id, target.assignee_id_was]) assignee_id_was = previous_record(target, "assignee_id")
recipients = User.where(id: [target.assignee_id, assignee_id_was])
# Add watchers to email list # Add watchers to email list
recipients = recipients.concat(project_watchers(project)) recipients = recipients.concat(project_watchers(project))
...@@ -313,11 +315,19 @@ class NotificationService ...@@ -313,11 +315,19 @@ class NotificationService
recipients.delete(current_user) recipients.delete(current_user)
recipients.each do |recipient| recipients.each do |recipient|
mailer.send(method, recipient.id, target.id, target.assignee_id_was, current_user.id) mailer.send(method, recipient.id, target.id, assignee_id_was, current_user.id)
end end
end end
def mailer def mailer
Notify.delay Notify.delay
end end
def previous_record(object, attribute)
if object && attribute
if object.previous_changes.include?(attribute)
object.previous_changes[attribute].first
end
end
end
end end
...@@ -4,5 +4,8 @@ ...@@ -4,5 +4,8 @@
from from
%strong #{@previous_assignee.name} %strong #{@previous_assignee.name}
to to
%strong #{@issue.assignee_name} - if @issue.assignee_id
%strong #{@issue.assignee_name}
- else
%strong Unassigned
...@@ -2,4 +2,4 @@ Reassigned Issue <%= @issue.iid %> ...@@ -2,4 +2,4 @@ Reassigned Issue <%= @issue.iid %>
<%= url_for(project_issue_url(@issue.project, @issue)) %> <%= url_for(project_issue_url(@issue.project, @issue)) %>
Assignee changed <%= "from #{@previous_assignee.name}" if @previous_assignee %> to <%= @issue.assignee_name %> Assignee changed <%= "from #{@previous_assignee.name}" if @previous_assignee %> to <%= "#{@issue.assignee_id ? @issue.assignee_name : 'Unassigned'}" %>
...@@ -215,7 +215,7 @@ describe NotificationService do ...@@ -215,7 +215,7 @@ describe NotificationService do
end end
def should_email(user_id) def should_email(user_id)
Notify.should_receive(:reassigned_issue_email).with(user_id, issue.id, issue.assignee_id, @u_disabled.id) Notify.should_receive(:reassigned_issue_email).with(user_id, issue.id, nil, @u_disabled.id)
end end
def should_not_email(user_id) def should_not_email(user_id)
...@@ -279,7 +279,7 @@ describe NotificationService do ...@@ -279,7 +279,7 @@ describe NotificationService do
end end
def should_email(user_id) def should_email(user_id)
Notify.should_receive(:reassigned_merge_request_email).with(user_id, merge_request.id, merge_request.assignee_id, merge_request.author_id) Notify.should_receive(:reassigned_merge_request_email).with(user_id, merge_request.id, nil, merge_request.author_id)
end end
def should_not_email(user_id) def should_not_email(user_id)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment