summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohan Sørensen <johan@johansorensen.com>2009-06-11 13:55:24 +0200
committerJohan Sørensen <johan@johansorensen.com>2009-06-11 13:55:24 +0200
commit178d47b3007a0fba4e1cf4f9006bda2135d18504 (patch)
treecf6315d71717e86677ec57a9bae38c016a9f2db9
parent193d8d984c07bd45d24be1d6c67ed200aa11faa8 (diff)
downloadgitorious-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.rb1
-rw-r--r--app/models/user.rb5
-rw-r--r--test/unit/user_test.rb7
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)