Browse Source

Added additional properties for the user

sh4nks 10 years ago
parent
commit
000625094d
3 changed files with 26 additions and 15 deletions
  1. 1 7
      flaskbb/templates/user/profile.html
  2. 24 0
      flaskbb/user/models.py
  3. 1 8
      flaskbb/user/views.py

+ 1 - 7
flaskbb/templates/user/profile.html

@@ -54,7 +54,7 @@
                 </tr>
                 </tr>
                 <tr>
                 <tr>
                   <td align="right">Posts:</td>
                   <td align="right">Posts:</td>
-                  <td>{{ user.post_count }} ({{ posts_per_day }} per day)</td>
+                  <td>{{ user.post_count }} ({{ user.posts_per_day }} per day)</td>
                 </tr>
                 </tr>
                 <tr>
                 <tr>
                   <td align="right">Last seen:</td>
                   <td align="right">Last seen:</td>
@@ -69,12 +69,6 @@
                       {%- endif -%}
                       {%- endif -%}
                   </td>
                   </td>
                 </tr>
                 </tr>
-                <!-- TODO: Implement Online Time
-                <tr>
-                  <td align="right">Online time:</td>
-                  <td>1024 hours</td>
-                </tr>
-                -->
                 <tr>
                 <tr>
                   <td align="right">Location:</td>
                   <td align="right">Location:</td>
                   <td>{%- if user.location -%} {{ user.location }} {%- else -%} No Info {%- endif -%}</td>
                   <td>{%- if user.location -%} {{ user.location }} {%- else -%} No Info {%- endif -%}</td>

+ 24 - 0
flaskbb/user/models.py

@@ -133,8 +133,32 @@ class User(db.Model, UserMixin):
 
 
     @property
     @property
     def permissions(self):
     def permissions(self):
+        """Returns the permissions for the user"""
         return self.get_permissions()
         return self.get_permissions()
 
 
+    @property
+    def days_registered(self):
+        """Returns the amount of days the user is registered."""
+        days_registered = (datetime.utcnow() - self.date_joined).days
+        if not days_registered:
+            return 1
+        return days_registered
+
+    @property
+    def topic_count(self):
+        """Returns the thread count"""
+        return Topic.query.filter(Topic.user_id == self.id).count()
+
+    @property
+    def posts_per_day(self):
+        """Returns the posts per day count"""
+        return round((float(self.post_count) / float(self.days_registered)), 1)
+
+    @property
+    def topics_per_day(self):
+        """Returns the topics per day count"""
+        return round((float(self.topic_count) / float(self.days_registered)), 1)
+
     # Methods
     # Methods
     def __repr__(self):
     def __repr__(self):
         """Set to a unique key specific to the object in the database.
         """Set to a unique key specific to the object in the database.

+ 1 - 8
flaskbb/user/views.py

@@ -30,14 +30,7 @@ user = Blueprint("user", __name__)
 def profile(username):
 def profile(username):
     user = User.query.filter_by(username=username).first_or_404()
     user = User.query.filter_by(username=username).first_or_404()
 
 
-    days_registered = (datetime.utcnow() - user.date_joined).days
-    if not days_registered:
-        days_registered = 1
-
-    posts_per_day = round((float(user.post_count) / float(days_registered)), 1)
-    return render_template("user/profile.html", user=user,
-                           days_registered=days_registered,
-                           posts_per_day=posts_per_day)
+    return render_template("user/profile.html", user=user)
 
 
 
 
 @user.route("/<username>/topics")
 @user.route("/<username>/topics")