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">
                         <div class="btn-group navbar-btn navbar-right">
                             <button type="button" class="btn btn-success dropdown-toggle" data-toggle="dropdown">
                             <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>
                             </button>
                             <ul class="dropdown-menu" role="menu">
                             <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.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><a href="{{ url_for('pms.new_message') }}"><span class="glyphicon glyphicon-pencil"></span> New Message</a></li>
+                                <!--
                                 <li class="divider"></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>
                                 <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>
                             </ul>
                         </div>
                         </div>
                     {% else %}
                     {% else %}

+ 11 - 2
flaskbb/user/models.py

@@ -17,6 +17,7 @@ from flask import current_app
 from flask.ext.login import UserMixin, AnonymousUserMixin
 from flask.ext.login import UserMixin, AnonymousUserMixin
 from flaskbb.extensions import db, cache
 from flaskbb.extensions import db, cache
 from flaskbb.forum.models import Post, Topic
 from flaskbb.forum.models import Post, Topic
+from flaskbb.pms.models import PrivateMessage
 
 
 
 
 groups_users = db.Table('groups_users',
 groups_users = db.Table('groups_users',
@@ -42,8 +43,6 @@ class Group(db.Model):
     deletetopic = db.Column(db.Boolean)
     deletetopic = db.Column(db.Boolean)
     posttopic = db.Column(db.Boolean)
     posttopic = db.Column(db.Boolean)
     postreply = db.Column(db.Boolean)
     postreply = db.Column(db.Boolean)
-    viewtopic = db.Column(db.Boolean)
-    viewprofile = db.Column(db.Boolean)
 
 
 
 
 class User(db.Model, UserMixin):
 class User(db.Model, UserMixin):
@@ -79,6 +78,16 @@ class User(db.Model, UserMixin):
                              backref=db.backref('users', lazy='dynamic'),
                              backref=db.backref('users', lazy='dynamic'),
                              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):
     def __repr__(self):
         return "Username: %s" % self.username
         return "Username: %s" % self.username