Browse Source

A few fixes
Expect more activity in the next days.. I'm motivated again :)

sh4nks 11 years ago
parent
commit
9b67498734

+ 0 - 1
flaskbb/admin/forms.py

@@ -287,6 +287,5 @@ class ForumForm(Form):
             forum.parent_id = None
         else:
             forum.parent_id = self.parent.data.id
-            forum.parents.add(self.parent.data.id)
 
         return forum.save()

+ 3 - 1
flaskbb/admin/views.py

@@ -196,7 +196,9 @@ def edit_forum(forum_id):
         forum.position = form.position.data
         forum.is_category = form.is_category.data
         forum.locked = form.locked.data
-        forum.moderators = form.moderators.data
+
+        if form.moderators.data:
+            forum.moderators = form.moderators.data
 
         if hasattr(form.parent.data, 'id'):
             forum.parent_id = form.parent.data.id

+ 11 - 3
flaskbb/forum/helpers.py

@@ -57,10 +57,18 @@ def get_forum_ids(forum):
 
 def get_forums(forum_query, current_user=False):
     """
-    Pack all forum objects in a dict
-    It looks like this:
+    Sort all forums
+    If current_user is `True` the `forum_query` will look like this:
+          Forum     ForumsRead
+        [(<Forum 1>, None),
+         (<Forum 2>, None),
+         (<Forum 3>, <flaskbb.forum.models.ForumsRead at 0x105319250>),
+         (<Forum 4>, None),
+         (<Forum 5>, None),
+         (<Forum 6>, <flaskbb.forum.models.ForumsRead at 0x105281090>)]
+    and it will return something like this:
       Category      Forum         Subforums
-    {<Forum 1)>: {<Forum 2)>: [<Forum 5)>, <Forum 6)>]},
+    {<Forum 1>: {<Forum 2>: [<Forum 5>, <Forum 6>]},
     """
     if not current_user:
         forum_query = [(item, None) for item in forum_query]

+ 12 - 0
flaskbb/forum/models.py

@@ -369,6 +369,18 @@ class Forum(db.Model):
     def save(self):
         db.session.add(self)
         db.session.commit()
+
+        parent_ids = []
+        parent = self.parent
+        while parent and not parent.is_category:
+            parent_ids.append(parent.id)
+            parent = parent.parent
+
+        for parent_id in parent_ids:
+            self.parents.add(parent_id)
+
+        db.session.add(self)
+        db.session.commit()
         return self
 
     def delete(self, users=None):

+ 1 - 1
flaskbb/forum/views.py

@@ -13,7 +13,7 @@ import datetime
 import math
 
 from flask import (Blueprint, render_template, redirect, url_for, current_app,
-                   request, flash, abort)
+                   request, flash)
 from flask.ext.login import login_required, current_user
 
 from flaskbb.extensions import db

+ 1 - 1
flaskbb/templates/admin/forums.html

@@ -15,7 +15,7 @@
         <tr>
             <td>{{ forum.id }}</td>
             <td><a href="#">{{ forum.title }}</a></td>
-            <td>{{ forum.description }}</td>
+            <td>{{ forum.description }} | {{ forum.parents }}</td>
             <td>
                 <a href="{{ url_for('admin.edit_forum', forum_id = forum.id) }}">Edit</a> |
                 <a href="{{ url_for('admin.delete_forum', forum_id = forum.id) }}">Delete</a>

+ 5 - 2
flaskbb/templates/user/profile.html

@@ -20,8 +20,11 @@
                 {% if user.avatar %}
                 <tr><td><img src="{{ user.avatar }}" alt="Avatar" height="100" width="100"> </td></tr>
                 {% endif %}
-                <!-- TODO: Implement online status -->
-                <tr><td><b></b> <span class="label label-success">Online</span></td></tr>
+                {% if user|is_online %}
+                <tr><td><span class="label label-success">Online</span></td></tr>
+                {% else %}
+                <tr><td><span class="label label-default">Offline</span></td></tr>
+                {% endif %}
                 <tr><td><a href="{{ url_for('user.view_all_topics', username=user.username) }}">All Topics</a></td></tr>
                 <tr><td><a href="{{ url_for('user.view_all_posts', username=user.username) }}">All Posts</a></td></tr>
               </tbody>

+ 1 - 1
flaskbb/utils/populate.py

@@ -177,7 +177,7 @@ def create_test_data():
     for i in range(1, 3):
         forum_title = "Test Forum %s " % i
         forum = Forum(title=forum_title, description="Test Description",
-                      parent_id=1)
+                      parent_id=category.id)
         forum.save()
 
         # Create a subforum

+ 1 - 5
manage.py

@@ -10,8 +10,6 @@
     :copyright: (c) 2013 by the FlaskBB Team.
     :license: BSD, see LICENSE for more details.
 """
-import os
-
 from flask import current_app
 from flask.ext.script import Manager, Shell, Server
 
@@ -55,9 +53,7 @@ def createall():
     """
 
     # Just for testing purposes
-    dbfile = os.path.join(Config._basedir, "flaskbb.sqlite")
-    if os.path.exists(dbfile):
-        os.remove(dbfile)
+    db.drop_all()
 
     db.create_all()
     create_test_data()