Commit 6b19cd0c authored by Paul Brown's avatar Paul Brown

add suggested changes to editable list view flexibility

parent 5e1d3b27
...@@ -6,6 +6,7 @@ from flask.ext.admin import expose ...@@ -6,6 +6,7 @@ from flask.ext.admin import expose
from flask.ext.admin.babel import gettext, ngettext, lazy_gettext from flask.ext.admin.babel import gettext, ngettext, lazy_gettext
from flask.ext.admin.model import BaseModelView from flask.ext.admin.model import BaseModelView
from flask.ext.admin.model.form import wrap_fields_in_fieldlist from flask.ext.admin.model.form import wrap_fields_in_fieldlist
from flask.ext.admin.model.fields import ListEditableFieldList
from flask.ext.admin._compat import iteritems, string_types from flask.ext.admin._compat import iteritems, string_types
import mongoengine import mongoengine
...@@ -22,7 +23,6 @@ from .helpers import format_error ...@@ -22,7 +23,6 @@ from .helpers import format_error
from .ajax import process_ajax_references, create_ajax_loader from .ajax import process_ajax_references, create_ajax_loader
from .subdoc import convert_subdocuments from .subdoc import convert_subdocuments
# Set up logger # Set up logger
log = logging.getLogger("flask-admin.mongo") log = logging.getLogger("flask-admin.mongo")
...@@ -399,7 +399,8 @@ class ModelView(BaseModelView): ...@@ -399,7 +399,8 @@ class ModelView(BaseModelView):
return form_class return form_class
def scaffold_list_form(self, CustomFieldList, validators=None): def scaffold_list_form(self, custom_fieldlist=ListEditableFieldList,
validators=None):
""" """
Create form for the `index_view` using only the columns from Create form for the `index_view` using only the columns from
`self.column_editable_list`. `self.column_editable_list`.
...@@ -407,7 +408,7 @@ class ModelView(BaseModelView): ...@@ -407,7 +408,7 @@ class ModelView(BaseModelView):
:param validators: :param validators:
`form_args` dict with only validators `form_args` dict with only validators
{'name': {'validators': [required()]}} {'name': {'validators': [required()]}}
:param CustomFieldList: :param custom_fieldlist:
A WTForm FieldList class. By default, `ListEditableFieldList`. A WTForm FieldList class. By default, `ListEditableFieldList`.
""" """
form_class = get_form(self.model, form_class = get_form(self.model,
...@@ -418,7 +419,7 @@ class ModelView(BaseModelView): ...@@ -418,7 +419,7 @@ class ModelView(BaseModelView):
return wrap_fields_in_fieldlist(self.form_base_class, return wrap_fields_in_fieldlist(self.form_base_class,
form_class, form_class,
CustomFieldList) custom_fieldlist)
# AJAX foreignkey support # AJAX foreignkey support
def _create_ajax_loader(self, name, opts): def _create_ajax_loader(self, name, opts):
......
...@@ -6,6 +6,7 @@ from flask.ext.admin._compat import string_types ...@@ -6,6 +6,7 @@ from flask.ext.admin._compat import string_types
from flask.ext.admin.babel import gettext, ngettext, lazy_gettext from flask.ext.admin.babel import gettext, ngettext, lazy_gettext
from flask.ext.admin.model import BaseModelView from flask.ext.admin.model import BaseModelView
from flask.ext.admin.model.form import wrap_fields_in_fieldlist from flask.ext.admin.model.form import wrap_fields_in_fieldlist
from flask.ext.admin.model.fields import ListEditableFieldList
from peewee import PrimaryKeyField, ForeignKeyField, Field, CharField, TextField from peewee import PrimaryKeyField, ForeignKeyField, Field, CharField, TextField
...@@ -238,7 +239,8 @@ class ModelView(BaseModelView): ...@@ -238,7 +239,8 @@ class ModelView(BaseModelView):
return form_class return form_class
def scaffold_list_form(self, CustomFieldList, validators=None): def scaffold_list_form(self, custom_fieldlist=ListEditableFieldList,
validators=None):
""" """
Create form for the `index_view` using only the columns from Create form for the `index_view` using only the columns from
`self.column_editable_list`. `self.column_editable_list`.
...@@ -246,7 +248,7 @@ class ModelView(BaseModelView): ...@@ -246,7 +248,7 @@ class ModelView(BaseModelView):
:param validators: :param validators:
`form_args` dict with only validators `form_args` dict with only validators
{'name': {'validators': [required()]}} {'name': {'validators': [required()]}}
:param CustomFieldList: :param custom_fieldlist:
A WTForm FieldList class. By default, `ListEditableFieldList`. A WTForm FieldList class. By default, `ListEditableFieldList`.
""" """
form_class = get_form(self.model, self.model_form_converter(self), form_class = get_form(self.model, self.model_form_converter(self),
...@@ -256,7 +258,7 @@ class ModelView(BaseModelView): ...@@ -256,7 +258,7 @@ class ModelView(BaseModelView):
return wrap_fields_in_fieldlist(self.form_base_class, return wrap_fields_in_fieldlist(self.form_base_class,
form_class, form_class,
CustomFieldList) custom_fieldlist)
def scaffold_inline_form_models(self, form_class): def scaffold_inline_form_models(self, form_class):
converter = self.model_form_converter(self) converter = self.model_form_converter(self)
......
...@@ -12,6 +12,7 @@ from flask.ext.admin._compat import string_types ...@@ -12,6 +12,7 @@ from flask.ext.admin._compat import string_types
from flask.ext.admin.babel import gettext, ngettext, lazy_gettext from flask.ext.admin.babel import gettext, ngettext, lazy_gettext
from flask.ext.admin.model import BaseModelView from flask.ext.admin.model import BaseModelView
from flask.ext.admin.model.form import wrap_fields_in_fieldlist from flask.ext.admin.model.form import wrap_fields_in_fieldlist
from flask.ext.admin.model.fields import ListEditableFieldList
from flask.ext.admin.actions import action from flask.ext.admin.actions import action
from flask.ext.admin._backwards import ObsoleteAttr from flask.ext.admin._backwards import ObsoleteAttr
...@@ -612,7 +613,8 @@ class ModelView(BaseModelView): ...@@ -612,7 +613,8 @@ class ModelView(BaseModelView):
return form_class return form_class
def scaffold_list_form(self, CustomFieldList, validators=None): def scaffold_list_form(self, custom_fieldlist=ListEditableFieldList,
validators=None):
""" """
Create form for the `index_view` using only the columns from Create form for the `index_view` using only the columns from
`self.column_editable_list`. `self.column_editable_list`.
...@@ -620,7 +622,7 @@ class ModelView(BaseModelView): ...@@ -620,7 +622,7 @@ class ModelView(BaseModelView):
:param validators: :param validators:
`form_args` dict with only validators `form_args` dict with only validators
{'name': {'validators': [required()]}} {'name': {'validators': [required()]}}
:param CustomFieldList: :param custom_fieldlist:
A WTForm FieldList class. By default, `ListEditableFieldList`. A WTForm FieldList class. By default, `ListEditableFieldList`.
""" """
converter = self.model_form_converter(self.session, self) converter = self.model_form_converter(self.session, self)
...@@ -631,7 +633,7 @@ class ModelView(BaseModelView): ...@@ -631,7 +633,7 @@ class ModelView(BaseModelView):
return wrap_fields_in_fieldlist(self.form_base_class, return wrap_fields_in_fieldlist(self.form_base_class,
form_class, form_class,
CustomFieldList) custom_fieldlist)
def scaffold_inline_form_models(self, form_class): def scaffold_inline_form_models(self, form_class):
""" """
......
...@@ -854,7 +854,8 @@ class BaseModelView(BaseView, ActionsMixin): ...@@ -854,7 +854,8 @@ class BaseModelView(BaseView, ActionsMixin):
""" """
raise NotImplementedError('Please implement scaffold_form method') raise NotImplementedError('Please implement scaffold_form method')
def scaffold_list_form(self, CustomFieldList, validators=None): def scaffold_list_form(self, custom_fieldlist=ListEditableFieldList,
validators=None):
""" """
Create form for the `index_view` using only the columns from Create form for the `index_view` using only the columns from
`self.column_editable_list`. `self.column_editable_list`.
...@@ -862,7 +863,7 @@ class BaseModelView(BaseView, ActionsMixin): ...@@ -862,7 +863,7 @@ class BaseModelView(BaseView, ActionsMixin):
:param validators: :param validators:
`form_args` dict with only validators `form_args` dict with only validators
{'name': {'validators': [required()]}} {'name': {'validators': [required()]}}
:param CustomFieldList: :param custom_fieldlist:
A WTForm FieldList class. By default, `ListEditableFieldList`. A WTForm FieldList class. By default, `ListEditableFieldList`.
Must be implemented in the child class. Must be implemented in the child class.
...@@ -920,7 +921,7 @@ class BaseModelView(BaseView, ActionsMixin): ...@@ -920,7 +921,7 @@ class BaseModelView(BaseView, ActionsMixin):
else: else:
validators = None validators = None
return self.scaffold_list_form(ListEditableFieldList, validators) return self.scaffold_list_form(validators=validators)
def get_create_form(self): def get_create_form(self):
""" """
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment