Skip to content

Commit

Permalink
fix inet types converter, extend types in search
Browse files Browse the repository at this point in the history
  • Loading branch information
kalombos committed Nov 20, 2015
1 parent b90bda6 commit f906a90
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 4 deletions.
6 changes: 4 additions & 2 deletions flask_admin/contrib/sqla/form.py
Original file line number Diff line number Diff line change
Expand Up @@ -334,13 +334,15 @@ def conv_MSYear(self, field_args, **extra):
field_args['validators'].append(validators.NumberRange(min=1901, max=2155))
return fields.StringField(**field_args)

@converts('databases.postgres.PGInet', 'dialects.postgresql.base.INET')
@converts('sqlalchemy.dialects.postgresql.base.INET',
'databases.postgres.PGInet', 'dialects.postgresql.base.INET')
def conv_PGInet(self, field_args, **extra):
field_args.setdefault('label', u'IP Address')
field_args['validators'].append(validators.IPAddress())
return fields.StringField(**field_args)

@converts('dialects.postgresql.base.MACADDR')
@converts('sqlalchemy.dialects.postgresql.base.MACADDR',
'dialects.postgresql.base.MACADDR')
def conv_PGMacaddr(self, field_args, **extra):
field_args.setdefault('label', u'MAC Address')
field_args['validators'].append(validators.MacAddress())
Expand Down
6 changes: 4 additions & 2 deletions flask_admin/contrib/sqla/view.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
from sqlalchemy.sql.expression import desc, ColumnElement
from sqlalchemy import Boolean, Table, func, or_
from sqlalchemy.exc import IntegrityError
from sqlalchemy.sql.expression import cast
from sqlalchemy import Unicode

from flask import flash

Expand Down Expand Up @@ -828,11 +830,11 @@ def _apply_search(self, query, count_query, joins, count_joins, search):
inner_join=False)

column = field if alias is None else getattr(alias, field.key)
filter_stmt.append(column.ilike(stmt))
filter_stmt.append(cast(column, Unicode).ilike(stmt))

if count_filter_stmt is not None:
column = field if count_alias is None else getattr(count_alias, field.key)
count_filter_stmt.append(column.ilike(stmt))
count_filter_stmt.append(cast(column, Unicode).ilike(stmt))

query = query.filter(or_(*filter_stmt))

Expand Down

0 comments on commit f906a90

Please sign in to comment.