Commit b192ea76 authored by Serge S. Koval's avatar Serge S. Koval

Fixed #4. More documentation.

parent 716880e1
include LICENSE
recursive-include flask_admin/static *
recursive-include flask_admin/templates *
recursive-include flask_adminex/static *
recursive-include flask_adminex/templates *
......@@ -29,6 +29,8 @@
.. autoattribute:: ModelView.searchable_columns
.. autoattribute:: ModelView.column_filters
.. autoattribute:: BaseModelView.form_columns
.. autoattribute:: BaseModelView.excluded_form_columns
.. autoattribute:: BaseModelView.form_args
......@@ -54,6 +56,12 @@
.. automethod:: ModelView.scaffold_sortable_columns
.. automethod:: ModelView.scaffold_form
.. automethod:: ModelView.init_search
.. automethod:: ModelView.scaffold_filters
.. autoattribute:: ModelView.filter_converter
Configuration
-------------
......
......@@ -25,10 +25,13 @@
.. autoattribute:: BaseModelView.list_columns
.. autoattribute:: BaseModelView.excluded_list_columns
.. autoattribute:: BaseModelView.rename_columns
.. autoattribute:: BaseModelView.sortable_columns
.. autoattribute:: BaseModelView.searchable_columns
.. autoattribute:: BaseModelView.column_filters
.. autoattribute:: BaseModelView.form_columns
.. autoattribute:: BaseModelView.excluded_form_columns
.. autoattribute:: BaseModelView.form_args
......@@ -43,9 +46,11 @@
Scaffolding
-----------
.. automethod:: BaseModelView.scaffold_pk
.. automethod:: BaseModelView.scaffold_list_columns
.. automethod:: BaseModelView.scaffold_sortable_columns
.. automethod:: BaseModelView.scaffold_form
.. automethod:: BaseModelView.scaffold_filters
Configuration
-------------
......@@ -58,6 +63,9 @@
.. automethod:: BaseModelView.init_search
.. automethod:: BaseModelView.get_filters
.. automethod:: BaseModelView.is_valid_filter
Data
----
......
......@@ -3,7 +3,22 @@ from flask.ext.adminex.ext.sqlamodel import tools
class BaseSQLAFilter(filters.BaseFilter):
"""
Base SQLAlchemy filter.
"""
def __init__(self, column, name, options=None, data_type=None):
"""
Constructor.
`column`
Model field
`name`
Display name
`options`
Fixed set of options
`data_type`
Client data type
"""
super(BaseSQLAFilter, self).__init__(name, options, data_type)
self.column = column
......
......@@ -221,9 +221,28 @@ class ModelView(BaseModelView):
For example, if you entered *=ZZZ*, *ILIKE 'ZZZ'* statement will be used.
"""
column_filters = None
"""
Collection of the column filters.
Can contain either field names or instances of :class:`flask.ext.adminex.ext.sqlamodel.filters.BaseFilter` classes.
For example::
class MyModelView(BaseModelView):
column_filters = ('user', 'email')
or::
class MyModelView(BaseModelView):
column_filters = (BooleanEqualFilter(User.name, 'Name'))
"""
filter_converter = filters.FilterConverter()
"""
TBD:
Field to filter converter.
Override this attribute to use non-default converter.
"""
def __init__(self, model, session,
......@@ -407,6 +426,16 @@ class ModelView(BaseModelView):
return flt
def is_valid_filter(self, filter):
"""
Verify that provided filter object is derived from the
SQLAlchemy-compatible filter class.
`filter`
Filter object to verify.
"""
return isinstance(filter, filters.BaseSQLAFilter)
def scaffold_form(self):
"""
Create form from the model.
......
......@@ -114,7 +114,7 @@ class BaseModelView(BaseView):
"""
Collection of the column filters.
Can contain either field names or instances of :class:`flask.ext.admin.model.filters.BaseFilter` classes.
Can contain either field names or instances of :class:`flask.ext.adminex.model.filters.BaseFilter` classes.
For example:
......@@ -316,7 +316,7 @@ class BaseModelView(BaseView):
"""
return False
def scaffold_filter(self, name):
def scaffold_filters(self, name):
"""
Generate filter object for the given name
......@@ -637,7 +637,7 @@ class BaseModelView(BaseView):
sortable_columns=self._sortable_columns,
# Stuff
enumerate=enumerate,
gey_pk_value=self.get_pk_value,
get_pk_value=self.get_pk_value,
get_value=get_value,
return_url=self._get_url('.index_view',
page,
......
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