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
a9f4a84a
Commit
a9f4a84a
authored
Oct 13, 2017
by
Serge S. Koval
Committed by
GitHub
Oct 13, 2017
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1538 from beenje/citext
Add support for postgres CITEXT type
parents
5fff53bc
07853d70
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
40 additions
and
2 deletions
+40
-2
form.py
flask_admin/contrib/sqla/form.py
+2
-2
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/sqla/form.py
View file @
a9f4a84a
...
...
@@ -264,7 +264,7 @@ class AdminModelConverter(ModelConverterBase):
@
classmethod
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
))
@
converts
(
'String'
)
# includes VARCHAR, CHAR, and Unicode
...
...
@@ -290,7 +290,7 @@ class AdminModelConverter(ModelConverterBase):
self
.
_string_common
(
column
=
column
,
field_args
=
field_args
,
**
extra
)
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
):
self
.
_string_common
(
field_args
=
field_args
,
**
extra
)
return
fields
.
TextAreaField
(
**
field_args
)
...
...
flask_admin/tests/sqla/test_postgres.py
View file @
a9f4a84a
...
...
@@ -4,6 +4,7 @@ from . import setup_postgres
from
.test_basic
import
CustomModelView
from
sqlalchemy.dialects.postgresql
import
HSTORE
,
JSON
from
citext
import
CIText
def
test_hstore
():
...
...
@@ -75,3 +76,39 @@ def test_json():
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'json_test'
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 @
a9f4a84a
...
...
@@ -14,3 +14,4 @@ psycopg2
nose
coveralls
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