]> source.dussan.org Git - redmine.git/commitdiff
Option to send email notification on "Target version updated" (#17840).
authorGo MAEDA <maeda@farend.jp>
Sat, 5 Oct 2019 09:46:05 +0000 (09:46 +0000)
committerGo MAEDA <maeda@farend.jp>
Sat, 5 Oct 2019 09:46:05 +0000 (09:46 +0000)
Patch by Yuichi HARADA.

git-svn-id: http://svn.redmine.org/redmine/trunk@18595 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/journal.rb
config/locales/en.yml
lib/redmine/notifiable.rb
test/unit/journal_observer_test.rb

index 0e4517f09fc065debadbea9c11a87f7d2054bbf9..6ee6d94619d6c316378fd95dd9a18c436870c813 100644 (file)
@@ -308,7 +308,8 @@ class Journal < ActiveRecord::Base
         (Setting.notified_events.include?('issue_note_added') && notes.present?) ||
         (Setting.notified_events.include?('issue_status_updated') && new_status.present?) ||
         (Setting.notified_events.include?('issue_assigned_to_updated') && detail_for_attribute('assigned_to_id').present?) ||
-        (Setting.notified_events.include?('issue_priority_updated') && new_value_for('priority_id').present?)
+        (Setting.notified_events.include?('issue_priority_updated') && new_value_for('priority_id').present?) ||
+        (Setting.notified_events.include?('issue_fixed_version_updated') && detail_for_attribute('fixed_version_id').present?)
       )
       Mailer.deliver_issue_edit(self)
     end
index 8fcc2262ae4a3557070b4a745ba5aaafca768e4d..33bf510da319e52c08cd1b4494c033a736d435ea 100644 (file)
@@ -588,6 +588,7 @@ en:
   label_issue_status_updated: Status updated
   label_issue_assigned_to_updated: Assignee updated
   label_issue_priority_updated: Priority updated
+  label_issue_fixed_version_updated: Target version updated
   label_document: Document
   label_document_new: New document
   label_document_plural: Documents
index bc65dbf079a08add6308d405a95795617691c0c6..dbb5de335d371a324f41a981a1f45e891609c332 100644 (file)
@@ -16,6 +16,7 @@ module Redmine
       notifications << Notifiable.new('issue_status_updated', 'issue_updated')
       notifications << Notifiable.new('issue_assigned_to_updated', 'issue_updated')
       notifications << Notifiable.new('issue_priority_updated', 'issue_updated')
+      notifications << Notifiable.new('issue_fixed_version_updated', 'issue_updated')
       notifications << Notifiable.new('news_added')
       notifications << Notifiable.new('news_comment_added')
       notifications << Notifiable.new('document_added')
index 616916a6c8608eadb64d0440869db456e00bb647..903773db320ac61af8818644c84efbae3fa6f2ff 100644 (file)
@@ -22,12 +22,12 @@ require File.expand_path('../../test_helper', __FILE__)
 class JournalObserverTest < ActiveSupport::TestCase
   fixtures :issues, :issue_statuses, :journals, :journal_details, :projects,
            :projects_trackers, :trackers, :enabled_modules, :enumerations,
-           :users, :email_addresses, :roles, :members, :member_roles
+           :users, :user_preferences, :email_addresses, :roles, :members, :member_roles,
+           :versions
 
   def setup
     User.current = nil
     ActionMailer::Base.deliveries.clear
-    @journal = Journal.find 1
   end
 
   # context: issue_updated notified_events
@@ -174,4 +174,28 @@ class JournalObserverTest < ActiveSupport::TestCase
     end
     assert_equal 0, ActionMailer::Base.deliveries.size
   end
+
+  def test_create_should_send_email_notification_with_issue_fixed_version_updated
+    with_settings :notified_events => %w(issue_fixed_version_updated) do
+      user = User.find_by_login('jsmith')
+      issue = issues(:issues_001)
+      issue.init_journal(user)
+      issue.fixed_version = versions(:versions_003)
+
+      assert issue.save
+      assert_equal 2, ActionMailer::Base.deliveries.size
+    end
+  end
+
+  def test_create_should_not_send_email_notification_without_issue_fixed_version_updated
+    with_settings :notified_events => [] do
+      user = User.find_by_login('jsmith')
+      issue = issues(:issues_001)
+      issue.init_journal(user)
+      issue.fixed_version = versions(:versions_003)
+
+      assert issue.save
+      assert_equal 0, ActionMailer::Base.deliveries.size
+    end
+  end
 end