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.utils.helpers import render_template
 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.forum.models import Post, Topic, Forum, Category, Report
 from flaskbb.admin.forms import (AddUserForm, EditUserForm, AddGroupForm,
@@ -94,6 +94,12 @@ def 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_required
 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
 # extenesions
 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
 # various helpers
 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, \
     can_delete_topic, can_delete_post, can_edit_post, can_lock_topic, \
     can_move_topic
-from flaskbb.plugins.manager import PluginManager
 from flaskbb.plugins import hooks
 
 
@@ -64,8 +63,7 @@ def create_app(config=None):
 
     app.logger.debug("Loading plugins...")
 
-    plugin_manager = PluginManager(app)
-
+    plugin_manager.init_app(app)
     # Just a temporary solution to enable the 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.themes2 import Themes
 
+from flaskbb.plugins.manager import PluginManager
+
+
 # Database
 db = SQLAlchemy()
 
@@ -40,3 +43,7 @@ migrate = Migrate()
 
 # 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.forums', 'Forums') }}
                 {{ navlink('admin.unread_reports', 'Reports') }}
+                {{ navlink('admin.plugins', 'Plugins') }}
             </ul>
         </div><!--/.sidebar -->
     </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 %}