From 4e3938d00c5ec2efaf6de2d7db0bf38a550d6cfa Mon Sep 17 00:00:00 2001 From: MAEDA Go Date: Tue, 14 Nov 2023 11:36:05 +0900 Subject: [PATCH 2/2] Change the default notification option from `only_my_events` to `only_assigned` --- config/settings.yml | 2 +- db/migrate/017_create_settings.rb | 6 +++--- ...re_default_notification_option_is_stored_in_db.rb | 12 ++++++++++++ test/unit/issue_test.rb | 2 +- test/unit/user_test.rb | 2 +- 5 files changed, 18 insertions(+), 6 deletions(-) create mode 100644 db/migrate/20231113131245_ensure_default_notification_option_is_stored_in_db.rb diff --git a/config/settings.yml b/config/settings.yml index 6db94a50f..062b25d19 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -314,7 +314,7 @@ jsonp_enabled: default: 0 security_notifications: 1 default_notification_option: - default: 'only_my_events' + default: 'only_assigned' emails_header: default: '' thumbnails_enabled: diff --git a/db/migrate/017_create_settings.rb b/db/migrate/017_create_settings.rb index 4c18329cc..5768ca24c 100644 --- a/db/migrate/017_create_settings.rb +++ b/db/migrate/017_create_settings.rb @@ -5,9 +5,9 @@ class CreateSettings < ActiveRecord::Migration[4.2] t.column "value", :text end - # Persist text_formatting default setting for new installations - setting = Setting.new(:name => "text_formatting", :value => Setting.text_formatting) - setting.save! + # Persist default settings for new installations + Setting.create!(name: 'default_notification_option', value: Setting.default_notification_option) + Setting.create!(name: 'text_formatting', value: Setting.text_formatting) end def self.down diff --git a/db/migrate/20231113131245_ensure_default_notification_option_is_stored_in_db.rb b/db/migrate/20231113131245_ensure_default_notification_option_is_stored_in_db.rb new file mode 100644 index 000000000..0cad1982b --- /dev/null +++ b/db/migrate/20231113131245_ensure_default_notification_option_is_stored_in_db.rb @@ -0,0 +1,12 @@ +class EnsureDefaultNotificationOptionIsStoredInDb < ActiveRecord::Migration[6.1] + def up + # Set the default value in Redmine <= 5.1 to preserve the behavior of existing installations + Setting.find_or_create_by!(name: 'default_notification_option') do |setting| + setting.value = 'only_my_events' + end + end + + def down + # no-op + end +end diff --git a/test/unit/issue_test.rb b/test/unit/issue_test.rb index 14124f7bd..3957a7a60 100644 --- a/test/unit/issue_test.rb +++ b/test/unit/issue_test.rb @@ -3017,7 +3017,7 @@ class IssueTest < ActiveSupport::TestCase end test "Issue#recipients should include the author if the author is active" do - issue = Issue.generate!(:author => User.generate!) + issue = Issue.generate!(:author => User.generate!(:mail_notification => 'only_my_events')) assert issue.author, "No author set for Issue" assert issue.recipients.include?(issue.author.mail) end diff --git a/test/unit/user_test.rb b/test/unit/user_test.rb index 867ab40c8..374679f17 100644 --- a/test/unit/user_test.rb +++ b/test/unit/user_test.rb @@ -192,7 +192,7 @@ class UserTest < ActiveSupport::TestCase def test_user_before_create_should_set_the_mail_notification_to_the_default_setting user1 = User.generate! - assert_equal 'only_my_events', user1.mail_notification + assert_equal 'only_assigned', user1.mail_notification with_settings :default_notification_option => 'all' do user2 = User.generate! assert_equal 'all', user2.mail_notification -- 2.42.0