Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
flask-admin
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Python-Dev
flask-admin
Commits
2d5f7c0c
Commit
2d5f7c0c
authored
Dec 12, 2017
by
Fayaz Yusuf Khan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
use select2 in editable columns
parent
f04b71b7
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
13 additions
and
6 deletions
+13
-6
README.rst
README.rst
+1
-0
widgets.py
flask_admin/model/widgets.py
+8
-6
admin.css
flask_admin/static/admin/css/bootstrap2/admin.css
+4
-0
No files found.
README.rst
View file @
2d5f7c0c
...
...
@@ -93,6 +93,7 @@ For all the tests to pass successfully, you'll need Postgres & MongoDB to be run
CREATE DATABASE flask_admin_test;
CREATE EXTENSION postgis;
CREATE EXTENSION hstore;
You can also run the tests on multiple environments using *tox*.
...
...
flask_admin/model/widgets.py
View file @
2d5f7c0c
...
...
@@ -72,7 +72,8 @@ class XEditableWidget(object):
field inside of the FieldList (StringField, IntegerField, etc).
"""
def
__call__
(
self
,
field
,
**
kwargs
):
kwargs
.
setdefault
(
'data-value'
,
kwargs
.
pop
(
'display_value'
,
''
))
display_value
=
kwargs
.
pop
(
'display_value'
,
''
)
kwargs
.
setdefault
(
'data-value'
,
display_value
)
kwargs
.
setdefault
(
'data-role'
,
'x-editable'
)
kwargs
.
setdefault
(
'data-url'
,
'./ajax/update/'
)
...
...
@@ -91,7 +92,7 @@ class XEditableWidget(object):
return
HTMLString
(
'<a
%
s>
%
s</a>'
%
(
html_params
(
**
kwargs
),
escape
(
kwargs
[
'data-value'
]
))
escape
(
display_value
))
)
def
get_kwargs
(
self
,
field
,
kwargs
):
...
...
@@ -104,7 +105,7 @@ class XEditableWidget(object):
kwargs
[
'data-type'
]
=
'textarea'
kwargs
[
'data-rows'
]
=
'5'
elif
field
.
type
==
'BooleanField'
:
kwargs
[
'data-type'
]
=
'select'
kwargs
[
'data-type'
]
=
'select
2
'
# data-source = dropdown options
kwargs
[
'data-source'
]
=
json
.
dumps
([
{
'value'
:
''
,
'text'
:
gettext
(
'No'
)},
...
...
@@ -112,7 +113,7 @@ class XEditableWidget(object):
])
kwargs
[
'data-role'
]
=
'x-editable-boolean'
elif
field
.
type
in
[
'Select2Field'
,
'SelectField'
]:
kwargs
[
'data-type'
]
=
'select'
kwargs
[
'data-type'
]
=
'select
2
'
choices
=
[{
'value'
:
x
,
'text'
:
y
}
for
x
,
y
in
field
.
choices
]
# prepend a blank field to choices if allow_blank = True
...
...
@@ -144,7 +145,7 @@ class XEditableWidget(object):
elif
field
.
type
in
[
'QuerySelectField'
,
'ModelSelectField'
,
'QuerySelectMultipleField'
,
'KeyPropertyField'
]:
# QuerySelectField and ModelSelectField are for relations
kwargs
[
'data-type'
]
=
'select'
kwargs
[
'data-type'
]
=
'select
2
'
choices
=
[]
selected_ids
=
[]
...
...
@@ -162,12 +163,13 @@ class XEditableWidget(object):
kwargs
[
'data-source'
]
=
json
.
dumps
(
choices
)
if
field
.
type
==
'QuerySelectMultipleField'
:
kwargs
[
'data-type'
]
=
'select2'
kwargs
[
'data-role'
]
=
'x-editable-select2-multiple'
# must use id instead of text or prefilled values won't work
separator
=
getattr
(
field
,
'separator'
,
','
)
kwargs
[
'data-value'
]
=
separator
.
join
(
selected_ids
)
else
:
kwargs
[
'data-value'
]
=
text_type
(
selected_ids
[
0
])
else
:
raise
Exception
(
'Unsupported field type:
%
s'
%
(
type
(
field
),))
...
...
flask_admin/static/admin/css/bootstrap2/admin.css
View file @
2d5f7c0c
...
...
@@ -139,3 +139,7 @@ table.filters tr td {
*/
#no-more-tables
td
:before
{
content
:
attr
(
data-title
);
}
}
.editable-input
.select2-container
{
min-width
:
220px
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment