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
bf166071
Commit
bf166071
authored
Oct 03, 2012
by
Priit Laes
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
We now use Select2 instead of chosen \o/
parent
86fd561f
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
22 additions
and
20 deletions
+22
-20
README.rst
README.rst
+1
-1
form.py
flask_admin/contrib/sqlamodel/form.py
+3
-3
form.py
flask_admin/form.py
+12
-10
form.js
flask_admin/static/js/form.js
+4
-4
list.html
flask_admin/templates/admin/model/list.html
+2
-2
No files found.
README.rst
View file @
bf166071
...
...
@@ -33,7 +33,7 @@ Flask-Admin is extensively documented, you can find `documentation here <http://
3rd Party Stuff
---------------
Flask-Admin is built with help of `Twitter Bootstrap <http://twitter.github.com/bootstrap/>`_ and `
Chosen <http://harvesthq.github.com/chosen/
>`_.
Flask-Admin is built with help of `Twitter Bootstrap <http://twitter.github.com/bootstrap/>`_ and `
Select2 <https://github.com/ivaynberg/select2
>`_.
Kudos
-----
...
...
flask_admin/contrib/sqlamodel/form.py
View file @
bf166071
...
...
@@ -70,7 +70,7 @@ class AdminModelConverter(ModelConverterBase):
kwargs
[
'query_factory'
]
=
lambda
:
self
.
session
.
query
(
remote_model
)
if
prop
.
direction
.
name
==
'MANYTOONE'
:
return
QuerySelectField
(
widget
=
form
.
ChosenSelect
Widget
(),
return
QuerySelectField
(
widget
=
form
.
Select2
Widget
(),
**
kwargs
)
elif
prop
.
direction
.
name
==
'ONETOMANY'
:
# Skip backrefs
...
...
@@ -78,11 +78,11 @@ class AdminModelConverter(ModelConverterBase):
return
None
return
QuerySelectMultipleField
(
widget
=
form
.
ChosenSelect
Widget
(
multiple
=
True
),
widget
=
form
.
Select2
Widget
(
multiple
=
True
),
**
kwargs
)
elif
prop
.
direction
.
name
==
'MANYTOMANY'
:
return
QuerySelectMultipleField
(
widget
=
form
.
ChosenSelect
Widget
(
multiple
=
True
),
widget
=
form
.
Select2
Widget
(
multiple
=
True
),
**
kwargs
)
else
:
# Ignore pk/fk
...
...
flask_admin/form.py
View file @
bf166071
...
...
@@ -83,28 +83,30 @@ class TimeField(fields.Field):
raise
ValueError
(
gettext
(
'Invalid time format'
))
class
ChosenSelect
Widget
(
widgets
.
Select
):
class
Select2
Widget
(
widgets
.
Select
):
"""
`
Chosen <http://harvesthq.github.com/chosen/
>`_ styled select widget.
`
Select2 <https://github.com/ivaynberg/select2
>`_ styled select widget.
You must include chosen.js and form.js for styling to work.
You must include select2.js, form.js and select2 stylesheet for it to
work.
"""
def
__call__
(
self
,
field
,
**
kwargs
):
if
field
.
allow_blank
and
not
self
.
multiple
:
kwargs
[
'data-role'
]
=
u'
chosen
blank'
kwargs
[
'data-role'
]
=
u'
select2
blank'
else
:
kwargs
[
'data-role'
]
=
u'
chosen
'
kwargs
[
'data-role'
]
=
u'
select2
'
return
super
(
ChosenSelect
Widget
,
self
)
.
__call__
(
field
,
**
kwargs
)
return
super
(
Select2
Widget
,
self
)
.
__call__
(
field
,
**
kwargs
)
class
ChosenSelect
Field
(
fields
.
SelectField
):
class
Select2
Field
(
fields
.
SelectField
):
"""
`
Chosen <http://harvesthq.github.com/chosen/>`_ styled select field
.
`
Select2 <https://github.com/ivaynberg/select2>`_ styled select widget
.
You must include chosen.js and form.js for styling to work.
You must include select2.js, form.js and select2 stylesheet for it to
work.
"""
widget
=
ChosenSelect
Widget
widget
=
Select2
Widget
class
DatePickerWidget
(
widgets
.
TextInput
):
...
...
flask_admin/static/js/form.js
View file @
bf166071
...
...
@@ -2,10 +2,10 @@
var
AdminForm
=
function
()
{
this
.
applyStyle
=
function
(
el
,
name
)
{
switch
(
name
)
{
case
'
chosen
'
:
case
'
select2
'
:
$
(
el
).
select2
();
break
;
case
'
chosen
blank'
:
case
'
select2
blank'
:
$
(
el
).
select2
({
allowClear
:
true
});
break
;
case
'datepicker'
:
...
...
@@ -49,8 +49,8 @@
};
this
.
applyGlobalStyles
=
function
(
parent
)
{
$
(
'[data-role=
chosen
]'
,
parent
).
select2
();
$
(
'[data-role=
chosen
blank]'
,
parent
).
select2
({
allowClear
:
true
});
$
(
'[data-role=
select2
]'
,
parent
).
select2
();
$
(
'[data-role=
select2
blank]'
,
parent
).
select2
({
allowClear
:
true
});
$
(
'[data-role=datepicker]'
,
parent
).
datepicker
();
$
(
'[data-role=datetimepicker]'
,
parent
).
datepicker
({
displayTime
:
true
});
};
...
...
flask_admin/templates/admin/model/list.html
View file @
bf166071
...
...
@@ -73,14 +73,14 @@
{% set filter = admin_view._filters[flt[0]] %}
<a
href=
"#"
class=
"btn remove-filter"
title=
"{{ _gettext('Remove Filter') }}"
>
<span
class=
"close-icon"
>
×
</span>
{{ filters[flt[0]] }}
</a><select
class=
"filter-op"
data-role=
"
chosen
"
>
</a><select
class=
"filter-op"
data-role=
"
select2
"
>
{% for op in admin_view._filter_dict[filter.name] %}
<option
value=
"{{ op[0] }}"
{%
if
flt
[
0
]
==
op
[
0
]
%}
selected=
"selected"
{%
endif
%}
>
{{ op[1] }}
</option>
{% endfor %}
</select>
{%- set data = filter_data.get(flt[0]) -%}
{%- if data -%}
<select
name=
"flt{{ i }}_{{ flt[0] }}"
class=
"filter-val"
data-role=
"
chosen
"
>
<select
name=
"flt{{ i }}_{{ flt[0] }}"
class=
"filter-val"
data-role=
"
select2
"
>
{%- for d in data %}
<option
value=
"{{ d[0] }}"
{%
if
flt
[
1
]
==
d
[
0
]
%}
selected
{%
endif
%}
>
{{ d[1] }}
</option>
{%- endfor %}
...
...
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