Commit 6e7fb167 authored by Serge S. Koval's avatar Serge S. Koval

Updated documentation

parent a260ad5f
......@@ -10,4 +10,5 @@ API
mod_tools
mod_contrib_sqlamodel
mod_contrib_peeweemodel
mod_contrib_fileadmin
``flask.ext.admin.contrib.peeweemodel``
=======================================
Peewee model backend implementation.
.. automodule:: flask.ext.admin.contrib.peeweemodel
.. autoclass:: ModelView
:members:
:inherited-members:
:exclude-members: hide_backrefs, auto_select_related, list_select_related,
searchable_columns, filter_converter
Class inherits configuration options from :class:`~flask.ext.admin.model.BaseModelView` and they're not displayed here.
.. autoattribute:: searchable_columns
.. autoattribute:: filter_converter
.. autoattribute:: fast_mass_delete
.. autoattribute:: inline_models
``flask.ext.admin.contrib.sqlamodel``
=====================================
SQLAlchemy model backend implementation.
.. automodule:: flask.ext.admin.contrib.sqlamodel
.. autoclass:: ModelView
......@@ -16,3 +18,5 @@
.. autoattribute:: list_select_related
.. autoattribute:: searchable_columns
.. autoattribute:: filter_converter
.. autoattribute:: fast_mass_delete
.. autoattribute:: inline_models
......@@ -8,7 +8,8 @@
:exclude-members: can_create, can_edit, can_delete, list_template, edit_template,
create_template, list_columns, excluded_list_columns, rename_columns,
sortable_columns, searchable_columns, column_filters, form, form_columns,
excluded_form_columns, form_args, form_overrides, page_size
excluded_form_columns, form_args, form_overrides, page_size,
disallowed_actions
.. autoattribute:: can_create
.. autoattribute:: can_edit
......@@ -34,4 +35,6 @@
.. autoattribute:: form_args
.. autoattribute:: form_overrides
.. autoattribute:: disallowed_actions
.. autoattribute:: page_size
......@@ -177,7 +177,7 @@ Steps to add new model backend:
This method should return list of models with paging,
sorting, etc applied.
For SQLAlchemy it looks like:
For SQLAlchemy backend it looks like:
1. If search was enabled and provided search value is not empty,
generate LIKE statements for each field from `self.searchable_columns`
......
......@@ -114,8 +114,8 @@ def contribute_inline(model, form_class, inline_models):
# Remove reverse property from the list
ignore = [reverse_field.name]
if info.exclude:
exclude = ignore + info.exclude
if info.excluded_form_columns:
exclude = ignore + info.excluded_form_columns
else:
exclude = ignore
......@@ -123,8 +123,9 @@ def contribute_inline(model, form_class, inline_models):
converter = CustomModelConverter()
child_form = model_form(info.model,
base_class=form.BaseForm,
only=info.include,
only=info.form_columns,
exclude=exclude,
field_args=info.form_args,
allow_pk=True,
converter=converter)
......
......@@ -52,10 +52,27 @@ class ModelView(BaseModelView):
inline_models = None
"""
Inline related-model editing for parent to child relation::
Inline related-model editing for models with parent to child relation.
Accept enumerable with one of the values:
1. Child model class
class MyModelView(ModelView):
inline_models = (Post,)
2. Child model class and additional options
class MyModelView(ModelView):
inline_models = [(Post, dict(form_columns=['title']))]
3. Django-like ``InlineFormAdmin`` class instance
class MyInlineForm(InlineFormAdmin):
forum_columns = ('title', 'date')
class MyModelView(ModelView):
inline_models = (MyInlineForm,)
"""
def __init__(self, model, name=None,
......@@ -257,12 +274,6 @@ class ModelView(BaseModelView):
return False
def update_model(self, form, model):
"""
Update model from form.
`form`
Form instance
"""
try:
form.populate_obj(model)
model.save()
......
......@@ -345,8 +345,8 @@ def contribute_inline(session, model, form_class, inline_models):
# Remove reverse property from the list
ignore = [reverse_prop.key]
if info.exclude:
exclude = ignore + info.exclude
if info.excluded_form_columns:
exclude = ignore + info.excluded_form_columns
else:
exclude = ignore
......@@ -354,8 +354,9 @@ def contribute_inline(session, model, form_class, inline_models):
converter = AdminModelConverter(session, info)
child_form = get_form(info.model,
converter,
only=info.include,
only=info.form_columns,
exclude=exclude,
field_args=info.form_args,
hidden_pk=True)
setattr(form_class,
......
......@@ -114,7 +114,7 @@ class ModelView(BaseModelView):
fast_mass_delete = False
"""
If set to `False` and user deletes more than one model using actions,
If set to `False` and user deletes more than one model using built in action,
all models will be read from the database and then deleted one by one
giving SQLAlchemy chance to manually cleanup any dependencies (many-to-many
relationships, etc).
......@@ -126,10 +126,27 @@ class ModelView(BaseModelView):
inline_models = None
"""
Inline related-model editing for parent to child relation::
Inline related-model editing for models with parent to child relation.
Accept enumerable with one of the values:
1. Child model class
class MyModelView(ModelView):
inline_models = (Post,)
2. Child model class and additional options
class MyModelView(ModelView):
inline_models = [(Post, dict(form_columns=['title']))]
3. Django-like ``InlineFormAdmin`` class instance
class MyInlineForm(InlineFormAdmin):
forum_columns = ('title', 'date')
class MyModelView(ModelView):
inline_models = (MyInlineForm,)
"""
def __init__(self, model, session,
......
......@@ -11,11 +11,30 @@ def converts(*args):
class InlineFormAdmin(object):
"""
Settings for inline form administration.
You can use this class to customize displayed form.
For example::
class MyUserInfoForm(InlineFormAdmin):
form_columns = ('name', 'email')
"""
def __init__(self, model, **kwargs):
"""
Constructor
:param model:
Target model class
:param kwargs:
Additional options
"""
self.model = model
defaults = dict(include=None,
exclude=None)
defaults = dict(form_columns=None,
excluded_form_columns=None,
form_args=None)
defaults.update(kwargs)
for k, v in defaults.iteritems():
......
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