3
0
Fork 0

fix: add grid filters specific to numeric, integer types

This commit is contained in:
Lance Edgar 2025-01-12 19:12:53 -06:00
parent d63a9223d3
commit c33f211633
2 changed files with 53 additions and 0 deletions

View file

@ -465,6 +465,33 @@ class StringAlchemyFilter(AlchemyFilter):
sa.and_(*criteria)))
class NumericAlchemyFilter(AlchemyFilter):
"""
SQLAlchemy filter option for a numeric data column.
Subclass of :class:`AlchemyFilter`.
"""
default_verbs = ['equal', 'not_equal',
'greater_than', 'greater_equal',
'less_than', 'less_equal']
class IntegerAlchemyFilter(NumericAlchemyFilter):
"""
SQLAlchemy filter option for an integer data column.
Subclass of :class:`NumericAlchemyFilter`.
"""
def coerce_value(self, value):
""" """
if value:
try:
return int(value)
except:
pass
class BooleanAlchemyFilter(AlchemyFilter):
"""
SQLAlchemy filter option for a boolean data column.
@ -568,6 +595,8 @@ default_sqlalchemy_filters = {
None: AlchemyFilter,
sa.String: StringAlchemyFilter,
sa.Text: StringAlchemyFilter,
sa.Numeric: NumericAlchemyFilter,
sa.Integer: IntegerAlchemyFilter,
sa.Boolean: BooleanAlchemyFilter,
sa.Date: DateAlchemyFilter,
}