Browse Source

PM unread count

sh4nks 11 years ago
parent
commit
565ecf5aac
2 changed files with 14 additions and 3 deletions
  1. 3 1
      flaskbb/templates/layout.html
  2. 11 2
      flaskbb/user/models.py

+ 3 - 1
flaskbb/templates/layout.html

@@ -61,13 +61,15 @@
 
                         <div class="btn-group navbar-btn navbar-right">
                             <button type="button" class="btn btn-success dropdown-toggle" data-toggle="dropdown">
-                                <span class="glyphicon glyphicon-envelope"></span> <span class="badge">3</span>
+                                <span class="glyphicon glyphicon-envelope"></span> <span class="badge">{{ current_user.unread_count }}</span>
                             </button>
                             <ul class="dropdown-menu" role="menu">
                                 <li><a href="{{ url_for('pms.inbox') }}"><span class="glyphicon glyphicon-envelope"></span> Inbox</a></li>
                                 <li><a href="{{ url_for('pms.new_message') }}"><span class="glyphicon glyphicon-pencil"></span> New Message</a></li>
+                                <!--
                                 <li class="divider"></li>
                                 <li><a href="{{ url_for('pms.view_message', id=1) }}"><strong>test1</strong> - <span class="muted">This is the message title1</span> </a></li>
+                                -->
                             </ul>
                         </div>
                     {% else %}

+ 11 - 2
flaskbb/user/models.py

@@ -17,6 +17,7 @@ from flask import current_app
 from flask.ext.login import UserMixin, AnonymousUserMixin
 from flaskbb.extensions import db, cache
 from flaskbb.forum.models import Post, Topic
+from flaskbb.pms.models import PrivateMessage
 
 
 groups_users = db.Table('groups_users',
@@ -42,8 +43,6 @@ class Group(db.Model):
     deletetopic = db.Column(db.Boolean)
     posttopic = db.Column(db.Boolean)
     postreply = db.Column(db.Boolean)
-    viewtopic = db.Column(db.Boolean)
-    viewprofile = db.Column(db.Boolean)
 
 
 class User(db.Model, UserMixin):
@@ -79,6 +78,16 @@ class User(db.Model, UserMixin):
                              backref=db.backref('users', lazy='dynamic'),
                              lazy='dynamic')
 
+    @property
+    def unread_count(self):
+        count = PrivateMessage.query.filter(
+            PrivateMessage.user_id == self.id,
+            PrivateMessage.draft == False,
+            PrivateMessage.trash == False,
+            PrivateMessage.unread == True,
+            db.not_(PrivateMessage.from_user_id == self.id)).count()
+        return count
+
     def __repr__(self):
         return "Username: %s" % self.username