From 39f82b75f59ce8d0ce8159362f79b04ea478723b Mon Sep 17 00:00:00 2001 From: Marin Jankovski Date: Wed, 2 Jul 2014 11:55:05 +0200 Subject: [PATCH] When assigning an unassigned issue send notification with the correct text. --- app/services/notification_service.rb | 15 +++++++++++++-- app/views/notify/reassigned_issue_email.html.haml | 5 ++++- app/views/notify/reassigned_issue_email.text.erb | 2 +- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app/services/notification_service.rb b/app/services/notification_service.rb index 650b6008db8..9a1cd541f60 100644 --- a/app/services/notification_service.rb +++ b/app/services/notification_service.rb @@ -301,7 +301,9 @@ class NotificationService end 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 recipients = recipients.concat(project_watchers(project)) @@ -313,11 +315,20 @@ class NotificationService recipients.delete(current_user) 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 def mailer Notify.delay end + + def previous_record(object, attribute) + if object && attribute + if object.previous_changes.include?(attribute) + return object.previous_changes[attribute].first + end + end + nil + end end diff --git a/app/views/notify/reassigned_issue_email.html.haml b/app/views/notify/reassigned_issue_email.html.haml index 07227a3e68c..f1458df5c7b 100644 --- a/app/views/notify/reassigned_issue_email.html.haml +++ b/app/views/notify/reassigned_issue_email.html.haml @@ -4,5 +4,8 @@ from %strong #{@previous_assignee.name} to - %strong #{@issue.assignee_name} + - if @issue.assignee_id + %strong #{@issue.assignee_name} + - else + %strong Unassigned diff --git a/app/views/notify/reassigned_issue_email.text.erb b/app/views/notify/reassigned_issue_email.text.erb index bc0d0567922..4becac2749c 100644 --- a/app/views/notify/reassigned_issue_email.text.erb +++ b/app/views/notify/reassigned_issue_email.text.erb @@ -2,4 +2,4 @@ Reassigned Issue <%= @issue.iid %> <%= 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'}" %>