__init__.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. # -*- coding: utf-8 -*-
  2. """
  3. flaskbb.plugins.plugin_name
  4. ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  5. A Portal Plugin for FlaskBB.
  6. :copyright: (c) 2014 by the FlaskBB Team.
  7. :license: BSD, see LICENSE for more details.
  8. """
  9. from flask_plugins import connect_event
  10. from flaskbb.plugins import FlaskBBPlugin,db_for_plugin
  11. from flaskbb.utils.populate import (create_settings_from_fixture,
  12. delete_settings_from_fixture)
  13. from flaskbb.extensions import db
  14. from flaskbb.forum.models import Forum
  15. from .views import plugin_bp, inject_navigation_link
  16. __version__ = "0.1"
  17. __plugin__ = "HelloWorldPlugin"
  18. fixture = (
  19. ('plugin_plugin_name', {
  20. 'name': "Plugin Name Settings",
  21. "description": "Configure the Plugin Name Plugin",
  22. "settings": (
  23. ('plugin_name_display_in_navigation', {
  24. 'value': True,
  25. 'value_type': "boolean",
  26. 'name': "Show Link in Navigation",
  27. 'description': "If enabled, it will show the link in the navigation"
  28. }),
  29. ),
  30. }),
  31. )
  32. db=db_for_plugin(__name__,db)
  33. class MyModel(db.Model):
  34. __tablename__='my_model'
  35. field1=db.Column(db.String,primary_key=True)
  36. moderators = db.Table(
  37. 'test_table',
  38. db.Column('user_id', db.Integer(), db.ForeignKey('users.id'),
  39. nullable=False),
  40. db.Column('forum_id', db.Integer(),
  41. db.ForeignKey('forums.id', use_alter=True, name="fk_forum_id"),
  42. nullable=False))
  43. class HelloWorldPlugin(FlaskBBPlugin):
  44. settings_key = 'plugin_plugin_name'
  45. def setup(self):
  46. self.register_blueprint(plugin_bp, url_prefix="/plugin-name")
  47. connect_event("before-first-navigation-element", inject_navigation_link)
  48. def install(self):
  49. create_settings_from_fixture(fixture)
  50. def uninstall(self):
  51. delete_settings_from_fixture(fixture)