Просмотр исходного кода

Provide method to generate a settings form

Peter Justin 7 лет назад
Родитель
Сommit
d738e709c5
1 измененных файлов с 7 добавлено и 1 удалено
  1. 7 1
      flaskbb/plugins/models.py

+ 7 - 1
flaskbb/plugins/models.py

@@ -15,6 +15,7 @@ from sqlalchemy.orm.collections import attribute_mapped_collection
 
 from flaskbb.extensions import db
 from flaskbb.utils.database import CRUDMixin
+from flaskbb.utils.forms import generate_settings_form
 
 
 class PluginStore(CRUDMixin, db.Model):
@@ -33,7 +34,9 @@ class PluginStore(CRUDMixin, db.Model):
     name = db.Column(db.Unicode(255), nullable=False)
     description = db.Column(db.Text, nullable=True)
 
-    __table_args__ = (UniqueConstraint('key', 'plugin_id', name='plugin_kv_uniq'), )
+    __table_args__ = (
+        UniqueConstraint('key', 'plugin_id', name='plugin_kv_uniq'),
+    )
 
     def __repr__(self):
         return '<PluginSetting plugin={} key={} value={}>'.format(
@@ -55,6 +58,9 @@ class PluginRegistry(CRUDMixin, db.Model):
         'values', 'value', creator=lambda k, v: PluginStore(key=k, value=v)
     )
 
+    def get_settings_form(self):
+        return generate_settings_form(self.values.values())()
+
     def add_settings(self, settings):
         plugin_settings = []
         for key in settings: