git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4730 e93f8b46-1217-0410-a6f0-8f06a7374b81tags/1.2.0
@@ -262,11 +262,15 @@ class User < Principal | |||
notified_projects_ids | |||
end | |||
# Only users that belong to more than 1 project can select projects for which they are notified | |||
def valid_notification_options | |||
self.class.valid_notification_options(self) | |||
end | |||
# Only users that belong to more than 1 project can select projects for which they are notified | |||
def self.valid_notification_options(user=nil) | |||
# Note that @user.membership.size would fail since AR ignores | |||
# :include association option when doing a count | |||
if memberships.length < 1 | |||
if user.nil? || user.memberships.length < 1 | |||
MAIL_NOTIFICATION_OPTIONS.reject {|option| option.first == 'selected'} | |||
else | |||
MAIL_NOTIFICATION_OPTIONS |
@@ -8,7 +8,7 @@ | |||
<p><%= setting_check_box :plain_text_mail %></p> | |||
<p><%= setting_select(:default_notification_option, User::MAIL_NOTIFICATION_OPTIONS.collect {|o| [l(o.last), o.first.to_s]}) %></p> | |||
<p><%= setting_select(:default_notification_option, User.valid_notification_options.collect {|o| [l(o.last), o.first.to_s]}) %></p> | |||
</div> | |||
@@ -514,6 +514,12 @@ class UserTest < ActiveSupport::TestCase | |||
assert_equal 6, User.find(2).valid_notification_options.size | |||
end | |||
def test_valid_notification_options_class_method | |||
assert_equal 5, User.valid_notification_options.size | |||
assert_equal 5, User.valid_notification_options(User.find(7)).size | |||
assert_equal 6, User.valid_notification_options(User.find(2)).size | |||
end | |||
def test_mail_notification_all | |||
@jsmith.mail_notification = 'all' | |||
@jsmith.notified_project_ids = [] |