Commit d8b960da authored by Paul Brown's avatar Paul Brown

Merge pull request #1114 from kalombos/pg_fixes

fix inet types converter, search by non-text fields
parents 1ace7047 f906a904
...@@ -335,13 +335,15 @@ class AdminModelConverter(ModelConverterBase): ...@@ -335,13 +335,15 @@ class AdminModelConverter(ModelConverterBase):
field_args['validators'].append(validators.NumberRange(min=1901, max=2155)) field_args['validators'].append(validators.NumberRange(min=1901, max=2155))
return fields.StringField(**field_args) 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): def conv_PGInet(self, field_args, **extra):
field_args.setdefault('label', u'IP Address') field_args.setdefault('label', u'IP Address')
field_args['validators'].append(validators.IPAddress()) field_args['validators'].append(validators.IPAddress())
return fields.StringField(**field_args) 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): def conv_PGMacaddr(self, field_args, **extra):
field_args.setdefault('label', u'MAC Address') field_args.setdefault('label', u'MAC Address')
field_args['validators'].append(validators.MacAddress()) field_args['validators'].append(validators.MacAddress())
......
...@@ -7,6 +7,8 @@ from sqlalchemy.orm import joinedload, aliased ...@@ -7,6 +7,8 @@ from sqlalchemy.orm import joinedload, aliased
from sqlalchemy.sql.expression import desc, ColumnElement from sqlalchemy.sql.expression import desc, ColumnElement
from sqlalchemy import Boolean, Table, func, or_ from sqlalchemy import Boolean, Table, func, or_
from sqlalchemy.exc import IntegrityError from sqlalchemy.exc import IntegrityError
from sqlalchemy.sql.expression import cast
from sqlalchemy import Unicode
from flask import flash from flask import flash
...@@ -828,11 +830,11 @@ class ModelView(BaseModelView): ...@@ -828,11 +830,11 @@ class ModelView(BaseModelView):
inner_join=False) inner_join=False)
column = field if alias is None else getattr(alias, field.key) 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: if count_filter_stmt is not None:
column = field if count_alias is None else getattr(count_alias, field.key) 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)) query = query.filter(or_(*filter_stmt))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment