Commit 22bc4bd2 authored by Petrus J.v.Rensburg's avatar Petrus J.v.Rensburg

Merge branch 'docs'

parents 3cbca053 f4c59eb3
...@@ -492,3 +492,37 @@ do with it, so it won't generate a form field. In this case, you would need to m ...@@ -492,3 +492,37 @@ do with it, so it won't generate a form field. In this case, you would need to m
form_class.extra = TextField('Extra') form_class.extra = TextField('Extra')
return form_class return form_class
Customizing Batch Actions
-------------------------
****
If you want to add other batch actions to the list view, besides the default delete action,
then you can define a function that implements the desired logic and wrap it with the `@action` decorator.
The `action` decorator takes three parameters: `name`, `text` and `confirmation`.
While the wrapped function should accept only one parameter - `ids`::
from flask_admin.actions import action
class UserView(ModelView):
@action('approve', 'Approve', 'Are you sure you want to approve selected users?')
def action_approve(self, ids):
try:
query = User.query.filter(User.id.in_(ids))
count = 0
for user in query.all():
if user.approve():
count += 1
flash(ngettext('User was successfully approved.',
'%(count)s users were successfully approved.',
count,
count=count))
except Exception as ex:
if not self.handle_view_exception(ex):
raise
flash(gettext('Failed to approve users. %(error)s', error=str(ex)), 'error')
...@@ -49,6 +49,7 @@ Straight out of the box, this gives you a set of fully featured *CRUD* views for ...@@ -49,6 +49,7 @@ Straight out of the box, this gives you a set of fully featured *CRUD* views for
* A `list` view, with support for searching, sorting and filtering and deleting records. * A `list` view, with support for searching, sorting and filtering and deleting records.
* A `create` view for adding new records. * A `create` view for adding new records.
* An `edit` view for updating existing records. * An `edit` view for updating existing records.
* An optional, read-only `detail` view.
There are many options available for customizing the display and functionality of these builtin views. There are many options available for customizing the display and functionality of these builtin views.
For more details on that, see :ref:`customising-builtin-views`. For more details on the other For more details on that, see :ref:`customising-builtin-views`. For more details on the other
...@@ -221,6 +222,11 @@ To **disable some of the CRUD operations**, set any of these boolean parameters: ...@@ -221,6 +222,11 @@ To **disable some of the CRUD operations**, set any of these boolean parameters:
can_edit = False can_edit = False
can_delete = False can_delete = False
If your model has too much data to display in the list view, you can **add a read-only
detail view** by setting::
can_view_details = True
**Removing columns** from the list view is easy, just pass a list of column names for **Removing columns** from the list view is easy, just pass a list of column names for
the *column_excludes_list* parameter:: the *column_excludes_list* parameter::
...@@ -236,9 +242,10 @@ For a faster editing experience, enable **inline editing** in the list view:: ...@@ -236,9 +242,10 @@ For a faster editing experience, enable **inline editing** in the list view::
column_editable_list = ['name', 'last_name'] column_editable_list = ['name', 'last_name']
Or, have the edit form display inside a **modal window** on the list page, in stead of Or, have the add & edit forms display inside a **modal window** on the list page, in stead of
on the dedicated *edit* page:: on the dedicated *create* & *edit* pages::
create_modal = True
edit_modal = True edit_modal = True
You can restrict the possible values for a text-field by specifying a list of **select choices**:: You can restrict the possible values for a text-field by specifying a list of **select choices**::
......
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