]> source.dussan.org Git - redmine.git/commitdiff
Do not show "for only project I select" notification option on application settings...
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 16 Jan 2011 15:36:42 +0000 (15:36 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 16 Jan 2011 15:36:42 +0000 (15:36 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4730 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/user.rb
app/views/settings/_notifications.rhtml
test/unit/user_test.rb

index 5b107478d03a5325dce8f756cec7e9395a01e035..3cc6b8e40e53e30293a02043d8a554db88e29617 100644 (file)
@@ -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
index 4cc81c931d0ea1ca24d3160c2b32989c77fa032d..26c11ad9a7e33982a52e0288b4fcd9f8d8f42a0e 100644 (file)
@@ -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>
 
index 98a577ebbad94c535d9b17b761c3c0583dc14bec..bf5b45a60a2922c7dfe421ca2a5895ab0c07e52c 100644 (file)
@@ -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 = []