@@ -261,12 +261,16 class User < Principal | |||
|
261 | 261 | notified_projects_ids |
|
262 | 262 | end |
|
263 | 263 | |
|
264 | # Only users that belong to more than 1 project can select projects for which they are notified | |
|
265 | 264 | def valid_notification_options |
|
265 | self.class.valid_notification_options(self) | |
|
266 | end | |
|
267 | ||
|
268 | # Only users that belong to more than 1 project can select projects for which they are notified | |
|
269 | def self.valid_notification_options(user=nil) | |
|
266 | 270 | # Note that @user.membership.size would fail since AR ignores |
|
267 | 271 | # :include association option when doing a count |
|
268 | if memberships.length < 1 | |
|
269 |
MAIL_NOTIFICATION_OPTIONS. |
|
|
272 | if user.nil? || user.memberships.length < 1 | |
|
273 | MAIL_NOTIFICATION_OPTIONS.reject {|option| option.first == 'selected'} | |
|
270 | 274 | else |
|
271 | 275 | MAIL_NOTIFICATION_OPTIONS |
|
272 | 276 | end |
@@ -8,7 +8,7 | |||
|
8 | 8 | |
|
9 | 9 | <p><%= setting_check_box :plain_text_mail %></p> |
|
10 | 10 | |
|
11 |
<p><%= setting_select(:default_notification_option, User |
|
|
11 | <p><%= setting_select(:default_notification_option, User.valid_notification_options.collect {|o| [l(o.last), o.first.to_s]}) %></p> | |
|
12 | 12 | |
|
13 | 13 | </div> |
|
14 | 14 |
@@ -1,5 +1,5 | |||
|
1 |
# |
|
|
2 | # Copyright (C) 2006 Jean-Philippe Lang | |
|
1 | # Redmine - project management software | |
|
2 | # Copyright (C) 2006-2011 Jean-Philippe Lang | |
|
3 | 3 | # |
|
4 | 4 | # This program is free software; you can redistribute it and/or |
|
5 | 5 | # modify it under the terms of the GNU General Public License |
@@ -303,6 +303,19 class UserTest < ActiveSupport::TestCase | |||
|
303 | 303 | assert_nil @dlopper.roles_for_project(Project.find(2)).detect {|role| role.member?} |
|
304 | 304 | end |
|
305 | 305 | |
|
306 | def test_valid_notification_options | |
|
307 | # without memberships | |
|
308 | assert_equal 5, User.find(7).valid_notification_options.size | |
|
309 | # with memberships | |
|
310 | assert_equal 6, User.find(2).valid_notification_options.size | |
|
311 | end | |
|
312 | ||
|
313 | def test_valid_notification_options_class_method | |
|
314 | assert_equal 5, User.valid_notification_options.size | |
|
315 | assert_equal 5, User.valid_notification_options(User.find(7)).size | |
|
316 | assert_equal 6, User.valid_notification_options(User.find(2)).size | |
|
317 | end | |
|
318 | ||
|
306 | 319 | def test_mail_notification_all |
|
307 | 320 | @jsmith.mail_notification = 'all' |
|
308 | 321 | @jsmith.notified_project_ids = [] |
General Comments 0
You need to be logged in to leave comments.
Login now