Browse Source

Added "manage plugins" in the admin panel

sh4nks 11 years ago
parent
commit
46e2e0b8ff

+ 7 - 1
flaskbb/admin/views.py

@@ -19,7 +19,7 @@ from flaskbb import __version__ as flaskbb_version
 from flaskbb.forum.forms import UserSearchForm
 from flaskbb.forum.forms import UserSearchForm
 from flaskbb.utils.helpers import render_template
 from flaskbb.utils.helpers import render_template
 from flaskbb.utils.decorators import admin_required
 from flaskbb.utils.decorators import admin_required
-from flaskbb.extensions import db
+from flaskbb.extensions import db, plugin_manager
 from flaskbb.user.models import User, Group
 from flaskbb.user.models import User, Group
 from flaskbb.forum.models import Post, Topic, Forum, Category, Report
 from flaskbb.forum.models import Post, Topic, Forum, Category, Report
 from flaskbb.admin.forms import (AddUserForm, EditUserForm, AddGroupForm,
 from flaskbb.admin.forms import (AddUserForm, EditUserForm, AddGroupForm,
@@ -94,6 +94,12 @@ def reports():
     return render_template("admin/reports.html", reports=reports)
     return render_template("admin/reports.html", reports=reports)
 
 
 
 
+@admin.route("/plugins")
+@admin_required
+def plugins():
+    return render_template("admin/plugins.html", plugins=plugin_manager.plugins)
+
+
 @admin.route("/reports/unread")
 @admin.route("/reports/unread")
 @admin_required
 @admin_required
 def unread_reports():
 def unread_reports():

+ 2 - 4
flaskbb/app.py

@@ -27,7 +27,7 @@ from flaskbb.forum.views import forum
 from flaskbb.forum.models import Post, Topic, Category, Forum
 from flaskbb.forum.models import Post, Topic, Category, Forum
 # extenesions
 # extenesions
 from flaskbb.extensions import db, login_manager, mail, cache, redis, \
 from flaskbb.extensions import db, login_manager, mail, cache, redis, \
-    debugtoolbar, migrate, themes
+    debugtoolbar, migrate, themes, plugin_manager
 from flask.ext.whooshalchemy import whoosh_index
 from flask.ext.whooshalchemy import whoosh_index
 # various helpers
 # various helpers
 from flaskbb.utils.helpers import format_date, time_since, crop_title, \
 from flaskbb.utils.helpers import format_date, time_since, crop_title, \
@@ -37,7 +37,6 @@ from flaskbb.utils.helpers import format_date, time_since, crop_title, \
 from flaskbb.utils.permissions import can_post_reply, can_post_topic, \
 from flaskbb.utils.permissions import can_post_reply, can_post_topic, \
     can_delete_topic, can_delete_post, can_edit_post, can_lock_topic, \
     can_delete_topic, can_delete_post, can_edit_post, can_lock_topic, \
     can_move_topic
     can_move_topic
-from flaskbb.plugins.manager import PluginManager
 from flaskbb.plugins import hooks
 from flaskbb.plugins import hooks
 
 
 
 
@@ -64,8 +63,7 @@ def create_app(config=None):
 
 
     app.logger.debug("Loading plugins...")
     app.logger.debug("Loading plugins...")
 
 
-    plugin_manager = PluginManager(app)
-
+    plugin_manager.init_app(app)
     # Just a temporary solution to enable the plugins.
     # Just a temporary solution to enable the plugins.
     plugin_manager.enable_plugins()
     plugin_manager.enable_plugins()
 
 

+ 7 - 0
flaskbb/extensions.py

@@ -17,6 +17,9 @@ from flask.ext.redis import Redis
 from flask.ext.migrate import Migrate
 from flask.ext.migrate import Migrate
 from flask.ext.themes2 import Themes
 from flask.ext.themes2 import Themes
 
 
+from flaskbb.plugins.manager import PluginManager
+
+
 # Database
 # Database
 db = SQLAlchemy()
 db = SQLAlchemy()
 
 
@@ -40,3 +43,7 @@ migrate = Migrate()
 
 
 # Themes
 # Themes
 themes = Themes()
 themes = Themes()
+
+
+# PluginManager
+plugin_manager = PluginManager()

+ 1 - 0
flaskbb/templates/admin/admin_layout.html

@@ -12,6 +12,7 @@
                 {{ navlink('admin.groups', 'Groups') }}
                 {{ navlink('admin.groups', 'Groups') }}
                 {{ navlink('admin.forums', 'Forums') }}
                 {{ navlink('admin.forums', 'Forums') }}
                 {{ navlink('admin.unread_reports', 'Reports') }}
                 {{ navlink('admin.unread_reports', 'Reports') }}
+                {{ navlink('admin.plugins', 'Plugins') }}
             </ul>
             </ul>
         </div><!--/.sidebar -->
         </div><!--/.sidebar -->
     </div><!--/.col-sm-3 -->
     </div><!--/.col-sm-3 -->

+ 30 - 0
flaskbb/templates/admin/plugins.html

@@ -0,0 +1,30 @@
+{% extends theme("admin/admin_layout.html") %}
+{% block admin_content %}
+{% from theme('macros.html') import render_pagination %}
+
+<legend>Manage Plugins</legend>
+
+<table class="table table-bordered">
+    <thead>
+        <tr>
+            <th>Plugin</th>
+            <th>Information</th>
+            <th>Manage</th>
+        </tr>
+    </thead>
+    <tbody>
+        {% for plugin in plugins %}
+        <tr>
+            <td><a href="#">{{ plugin.name }}</a></td>
+            <td>
+                {{ plugin.version }} <br />
+                {{ plugin.description }} <br />
+                {{ plugin.author }}
+            </td>
+            <td>
+            </td>
+        </tr>
+        {% endfor %}
+    </tbody>
+</table>
+{% endblock %}