diff options
author | Johan Sørensen <johan@johansorensen.com> | 2009-06-11 13:55:24 +0200 |
---|---|---|
committer | Johan Sørensen <johan@johansorensen.com> | 2009-06-11 13:55:24 +0200 |
commit | 178d47b3007a0fba4e1cf4f9006bda2135d18504 (patch) | |
tree | cf6315d71717e86677ec57a9bae38c016a9f2db9 | |
parent | 193d8d984c07bd45d24be1d6c67ed200aa11faa8 (diff) | |
download | gitorious-mainline-outdated-178d47b3007a0fba4e1cf4f9006bda2135d18504.zip gitorious-mainline-outdated-178d47b3007a0fba4e1cf4f9006bda2135d18504.tar.gz gitorious-mainline-outdated-178d47b3007a0fba4e1cf4f9006bda2135d18504.tar.bz2 |
Make unread_count for received messages not include archived messages
-rw-r--r-- | app/models/message.rb | 1 | ||||
-rw-r--r-- | app/models/user.rb | 5 | ||||
-rw-r--r-- | test/unit/user_test.rb | 7 |
3 files changed, 12 insertions, 1 deletions
diff --git a/app/models/message.rb b/app/models/message.rb index edd65a1..99dfcef 100644 --- a/app/models/message.rb +++ b/app/models/message.rb @@ -153,6 +153,7 @@ class Message < ActiveRecord::Base self.archived_by_recipient = true end end + protected def send_email_notification_if_required if recipient.wants_email_notifications? and (recipient != sender) diff --git a/app/models/user.rb b/app/models/user.rb index 4a823b0..ff3d30b 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -87,7 +87,10 @@ class User < ActiveRecord::Base end def unread_count - count(:all, :conditions => {:aasm_state => "unread"}) + count(:all, :conditions => { + :aasm_state => "unread", + :archived_by_recipient => false, + }) end end diff --git a/test/unit/user_test.rb b/test/unit/user_test.rb index 5b7f896..dc2fb09 100644 --- a/test/unit/user_test.rb +++ b/test/unit/user_test.rb @@ -291,6 +291,13 @@ class UserTest < ActiveSupport::TestCase assert_equal(1, @recipient.received_messages.unread_count) end + should "not include archived messages in the unread count" do + msg = @recipient.received_messages.unread.first + msg.archived_by(@recipient) + msg.save! + assert_equal(0, @recipient.received_messages.unread_count) + end + context 'Top level messages' do setup do @sender = Factory.create(:user) |