Commit 0edfb4a9 authored by Serge S. Koval's avatar Serge S. Koval

excluded_list_columns and excluded_form_columns support.

parent 83f66df4
...@@ -5,12 +5,10 @@ ...@@ -5,12 +5,10 @@
- Ability to sort by fields that are not visible? - Ability to sort by fields that are not visible?
- Exclude for list columns - Exclude for list columns
- Exclude for form fields - Exclude for form fields
- Save and add another
- List display callables - List display callables
- Built-in filtering support - Built-in filtering support
- Configurable operations (=, >, <, etc) - Configurable operations (=, >, <, etc)
- Callable operations - Callable operations
- Built-in search support
- Paginator class - Paginator class
- Custom CSS/JS in admin interface - Custom CSS/JS in admin interface
- SQLA Model Admin - SQLA Model Admin
......
...@@ -23,12 +23,14 @@ ...@@ -23,12 +23,14 @@
-------------- --------------
.. autoattribute:: BaseModelView.list_columns .. autoattribute:: BaseModelView.list_columns
.. autoattribute:: BaseModelView.excluded_list_columns
.. autoattribute:: BaseModelView.rename_columns .. autoattribute:: BaseModelView.rename_columns
.. autoattribute:: BaseModelView.sortable_columns .. autoattribute:: BaseModelView.sortable_columns
.. autoattribute:: ModelView.searchable_columns .. autoattribute:: ModelView.searchable_columns
.. autoattribute:: BaseModelView.form_columns .. autoattribute:: BaseModelView.form_columns
.. autoattribute:: BaseModelView.excluded_form_columns
.. autoattribute:: BaseModelView.form_args .. autoattribute:: BaseModelView.form_args
.. autoattribute:: BaseModelView.page_size .. autoattribute:: BaseModelView.page_size
......
...@@ -23,12 +23,14 @@ ...@@ -23,12 +23,14 @@
-------------- --------------
.. autoattribute:: BaseModelView.list_columns .. autoattribute:: BaseModelView.list_columns
.. autoattribute:: BaseModelView.excluded_list_columns
.. autoattribute:: BaseModelView.rename_columns .. autoattribute:: BaseModelView.rename_columns
.. autoattribute:: BaseModelView.sortable_columns .. autoattribute:: BaseModelView.sortable_columns
.. autoattribute:: BaseModelView.searchable_columns .. autoattribute:: BaseModelView.searchable_columns
.. autoattribute:: BaseModelView.form_columns .. autoattribute:: BaseModelView.form_columns
.. autoattribute:: BaseModelView.excluded_form_columns
.. autoattribute:: BaseModelView.form_args .. autoattribute:: BaseModelView.form_args
.. autoattribute:: BaseModelView.page_size .. autoattribute:: BaseModelView.page_size
......
...@@ -49,11 +49,12 @@ def index(): ...@@ -49,11 +49,12 @@ def index():
# Customized Post model admin # Customized Post model admin
class PostAdmin(sqlamodel.ModelView): class PostAdmin(sqlamodel.ModelView):
# Visible columns in the list view # Visible columns in the list view
list_columns = ('title', 'user') #list_columns = ('title', 'user')
excluded_list_columns = ['text']
# List of columns that can be sorted. For 'user' column, use User.username as # List of columns that can be sorted. For 'user' column, use User.username as
# a column. # a column.
sortable_columns = ('title', ('user', User.username)) sortable_columns = ('title', ('user', User.username), 'date')
# Rename 'title' columns to 'Post Title' in list view # Rename 'title' columns to 'Post Title' in list view
rename_columns = dict(title='Post Title') rename_columns = dict(title='Post Title')
......
...@@ -267,6 +267,12 @@ class ModelView(BaseModelView): ...@@ -267,6 +267,12 @@ class ModelView(BaseModelView):
columns = [] columns = []
for p in self._get_model_iterator(): for p in self._get_model_iterator():
# Filter by name
if (self.excluded_list_columns and
p.key in self.excluded_list_columns):
continue
# Verify type
if hasattr(p, 'direction'): if hasattr(p, 'direction'):
if p.direction.name == 'MANYTOONE': if p.direction.name == 'MANYTOONE':
columns.append(p.key) columns.append(p.key)
...@@ -363,7 +369,8 @@ class ModelView(BaseModelView): ...@@ -363,7 +369,8 @@ class ModelView(BaseModelView):
""" """
return model_form(self.model, return model_form(self.model,
form.BaseForm, form.BaseForm,
self.form_columns, only=self.form_columns,
exclude=self.excluded_form_columns,
field_args=self.form_args, field_args=self.form_args,
converter=AdminModelConverter(self)) converter=AdminModelConverter(self))
......
...@@ -52,6 +52,16 @@ class BaseModelView(BaseView): ...@@ -52,6 +52,16 @@ class BaseModelView(BaseView):
list_columns = ('name', 'last_name', 'email') list_columns = ('name', 'last_name', 'email')
""" """
excluded_list_columns = None
"""
Collection of excluded list column names.
For example::
class MyModelView(BaseModelView):
excluded_list_columns = ('last_name', 'email')
"""
rename_columns = None rename_columns = None
""" """
Dictionary where key is column name and value is string to display. Dictionary where key is column name and value is string to display.
...@@ -108,6 +118,16 @@ class BaseModelView(BaseView): ...@@ -108,6 +118,16 @@ class BaseModelView(BaseView):
list_columns = ('name', 'email') list_columns = ('name', 'email')
""" """
excluded_form_columns = None
"""
Collection of excluded form field names.
For example::
class MyModelView(BaseModelView):
excluded_form_columns = ('last_name', 'email')
"""
form_args = None form_args = None
""" """
Dictionary of form field arguments. Refer to WTForm documentation for Dictionary of form field arguments. Refer to WTForm documentation for
......
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