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
9f85ecf3
Unverified
Commit
9f85ecf3
authored
Nov 01, 2017
by
chshkhr
Committed by
GitHub
Nov 01, 2017
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1 from flask-admin/master
renew
parents
79ecfc10
a9f4a84a
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
44 additions
and
6 deletions
+44
-6
view.py
flask_admin/contrib/peewee/view.py
+1
-3
form.py
flask_admin/contrib/sqla/form.py
+2
-2
form.js
flask_admin/static/admin/js/form.js
+2
-1
rediscli.js
flask_admin/static/admin/js/rediscli.js
+1
-0
test_postgres.py
flask_admin/tests/sqla/test_postgres.py
+37
-0
requirements-dev.txt
requirements-dev.txt
+1
-0
No files found.
flask_admin/contrib/peewee/view.py
View file @
9f85ecf3
...
@@ -213,10 +213,8 @@ class ModelView(BaseModelView):
...
@@ -213,10 +213,8 @@ class ModelView(BaseModelView):
if
isinstance
(
p
,
string_types
):
if
isinstance
(
p
,
string_types
):
p
=
getattr
(
self
.
model
,
p
)
p
=
getattr
(
self
.
model
,
p
)
field_type
=
type
(
p
)
# Check type
# Check type
if
(
field_type
!=
CharField
and
field_type
!=
TextField
):
if
not
isinstance
(
p
,
(
CharField
,
TextField
)
):
raise
Exception
(
'Can only search on text columns. '
+
raise
Exception
(
'Can only search on text columns. '
+
'Failed to setup search for "
%
s"'
%
p
)
'Failed to setup search for "
%
s"'
%
p
)
...
...
flask_admin/contrib/sqla/form.py
View file @
9f85ecf3
...
@@ -264,7 +264,7 @@ class AdminModelConverter(ModelConverterBase):
...
@@ -264,7 +264,7 @@ class AdminModelConverter(ModelConverterBase):
@
classmethod
@
classmethod
def
_string_common
(
cls
,
column
,
field_args
,
**
extra
):
def
_string_common
(
cls
,
column
,
field_args
,
**
extra
):
if
isinstance
(
column
.
type
.
length
,
int
)
and
column
.
type
.
length
:
if
hasattr
(
column
.
type
,
'length'
)
and
isinstance
(
column
.
type
.
length
,
int
)
and
column
.
type
.
length
:
field_args
[
'validators'
]
.
append
(
validators
.
Length
(
max
=
column
.
type
.
length
))
field_args
[
'validators'
]
.
append
(
validators
.
Length
(
max
=
column
.
type
.
length
))
@
converts
(
'String'
)
# includes VARCHAR, CHAR, and Unicode
@
converts
(
'String'
)
# includes VARCHAR, CHAR, and Unicode
...
@@ -290,7 +290,7 @@ class AdminModelConverter(ModelConverterBase):
...
@@ -290,7 +290,7 @@ class AdminModelConverter(ModelConverterBase):
self
.
_string_common
(
column
=
column
,
field_args
=
field_args
,
**
extra
)
self
.
_string_common
(
column
=
column
,
field_args
=
field_args
,
**
extra
)
return
fields
.
StringField
(
**
field_args
)
return
fields
.
StringField
(
**
field_args
)
@
converts
(
'Text'
,
'LargeBinary'
,
'Binary'
)
# includes UnicodeText
@
converts
(
'Text'
,
'LargeBinary'
,
'Binary'
,
'CIText'
)
# includes UnicodeText
def
conv_Text
(
self
,
field_args
,
**
extra
):
def
conv_Text
(
self
,
field_args
,
**
extra
):
self
.
_string_common
(
field_args
=
field_args
,
**
extra
)
self
.
_string_common
(
field_args
=
field_args
,
**
extra
)
return
fields
.
TextAreaField
(
**
field_args
)
return
fields
.
TextAreaField
(
**
field_args
)
...
...
flask_admin/static/admin/js/form.js
View file @
9f85ecf3
...
@@ -451,7 +451,8 @@
...
@@ -451,7 +451,8 @@
params
:
overrideXeditableParams
,
params
:
overrideXeditableParams
,
combodate
:
{
combodate
:
{
// prevent minutes from showing in 5 minute increments
// prevent minutes from showing in 5 minute increments
minuteStep
:
1
minuteStep
:
1
,
maxYear
:
2030
,
}
}
});
});
return
true
;
return
true
;
...
...
flask_admin/static/admin/js/rediscli.js
View file @
9f85ecf3
...
@@ -79,6 +79,7 @@ var RedisCli = function(postUrl) {
...
@@ -79,6 +79,7 @@ var RedisCli = function(postUrl) {
sendCommand
(
val
);
sendCommand
(
val
);
$input
.
val
(
''
);
$input
.
val
(
''
);
return
false
;
}
}
function
onKeyPress
(
e
)
{
function
onKeyPress
(
e
)
{
...
...
flask_admin/tests/sqla/test_postgres.py
View file @
9f85ecf3
...
@@ -4,6 +4,7 @@ from . import setup_postgres
...
@@ -4,6 +4,7 @@ from . import setup_postgres
from
.test_basic
import
CustomModelView
from
.test_basic
import
CustomModelView
from
sqlalchemy.dialects.postgresql
import
HSTORE
,
JSON
from
sqlalchemy.dialects.postgresql
import
HSTORE
,
JSON
from
citext
import
CIText
def
test_hstore
():
def
test_hstore
():
...
@@ -75,3 +76,39 @@ def test_json():
...
@@ -75,3 +76,39 @@ def test_json():
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'json_test'
in
data
)
ok_
(
'json_test'
in
data
)
ok_
(
'>{"test_key1": "test_value1"}<'
in
data
)
ok_
(
'>{"test_key1": "test_value1"}<'
in
data
)
def
test_citext
():
app
,
db
,
admin
=
setup_postgres
()
class
CITextModel
(
db
.
Model
):
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
)
citext_test
=
db
.
Column
(
CIText
)
db
.
engine
.
execute
(
'CREATE EXTENSION IF NOT EXISTS citext'
)
db
.
create_all
()
view
=
CustomModelView
(
CITextModel
,
db
.
session
)
admin
.
add_view
(
view
)
client
=
app
.
test_client
()
rv
=
client
.
get
(
'/admin/citextmodel/'
)
eq_
(
rv
.
status_code
,
200
)
rv
=
client
.
post
(
'/admin/citextmodel/new/'
,
data
=
{
'citext_test'
:
'Foo'
,
})
eq_
(
rv
.
status_code
,
302
)
rv
=
client
.
get
(
'/admin/citextmodel/'
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'citext_test'
in
data
)
ok_
(
'Foo'
in
data
)
rv
=
client
.
get
(
'/admin/citextmodel/edit/?id=1'
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'name="citext_test"'
in
data
)
ok_
(
'>Foo<'
in
data
)
requirements-dev.txt
View file @
9f85ecf3
...
@@ -14,3 +14,4 @@ psycopg2
...
@@ -14,3 +14,4 @@ psycopg2
nose
nose
coveralls
coveralls
pylint
pylint
sqlalchemy-citext
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