Commit ceb45b46 authored by PJ Janse van Rensburg's avatar PJ Janse van Rensburg

Allow filtering on new sqla_utils fields.

parent f6d22959
...@@ -440,6 +440,8 @@ class ChoiceTypeNotLikeFilter(FilterNotLike): ...@@ -440,6 +440,8 @@ class ChoiceTypeNotLikeFilter(FilterNotLike):
class FilterConverter(filters.BaseFilterConverter): class FilterConverter(filters.BaseFilterConverter):
strings = (FilterLike, FilterNotLike, FilterEqual, FilterNotEqual, strings = (FilterLike, FilterNotLike, FilterEqual, FilterNotEqual,
FilterEmpty, FilterInList, FilterNotInList) FilterEmpty, FilterInList, FilterNotInList)
string_key_filters = (FilterEqual, FilterNotEqual,
FilterEmpty, FilterInList, FilterNotInList)
int_filters = (IntEqualFilter, IntNotEqualFilter, IntGreaterFilter, int_filters = (IntEqualFilter, IntNotEqualFilter, IntGreaterFilter,
IntSmallerFilter, FilterEmpty, IntInListFilter, IntSmallerFilter, FilterEmpty, IntInListFilter,
IntNotInListFilter) IntNotInListFilter)
...@@ -460,7 +462,10 @@ class FilterConverter(filters.BaseFilterConverter): ...@@ -460,7 +462,10 @@ class FilterConverter(filters.BaseFilterConverter):
TimeSmallerFilter, TimeBetweenFilter, TimeNotBetweenFilter, TimeSmallerFilter, TimeBetweenFilter, TimeNotBetweenFilter,
FilterEmpty) FilterEmpty)
choice_type_filters = (ChoiceTypeEqualFilter, ChoiceTypeNotEqualFilter, choice_type_filters = (ChoiceTypeEqualFilter, ChoiceTypeNotEqualFilter,
ChoiceTypeLikeFilter, ChoiceTypeNotLikeFilter, FilterEmpty) ChoiceTypeLikeFilter, ChoiceTypeNotLikeFilter,
FilterEmpty)
arrow_type_filters = (DateTimeGreaterFilter, DateTimeSmallerFilter,
FilterEmpty)
def convert(self, type_name, column, name, **kwargs): def convert(self, type_name, column, name, **kwargs):
filter_name = type_name.lower() filter_name = type_name.lower()
...@@ -472,10 +477,15 @@ class FilterConverter(filters.BaseFilterConverter): ...@@ -472,10 +477,15 @@ class FilterConverter(filters.BaseFilterConverter):
@filters.convert('string', 'char', 'unicode', 'varchar', 'tinytext', @filters.convert('string', 'char', 'unicode', 'varchar', 'tinytext',
'text', 'mediumtext', 'longtext', 'unicodetext', 'text', 'mediumtext', 'longtext', 'unicodetext',
'nchar', 'nvarchar', 'ntext', 'citext', 'emailtype') 'nchar', 'nvarchar', 'ntext', 'citext', 'emailtype',
'URLType', 'IPAddressType')
def conv_string(self, column, name, **kwargs): def conv_string(self, column, name, **kwargs):
return [f(column, name, **kwargs) for f in self.strings] return [f(column, name, **kwargs) for f in self.strings]
@filters.convert('UUIDType', 'ColorType', 'TimezoneType', 'CurrencyType')
def conv_string_keys(self, column, name, **kwargs):
return [f(column, name, **kwargs) for f in self.string_key_filters]
@filters.convert('boolean', 'tinyint') @filters.convert('boolean', 'tinyint')
def conv_bool(self, column, name, **kwargs): def conv_bool(self, column, name, **kwargs):
return [f(column, name, **kwargs) for f in self.bool_filters] return [f(column, name, **kwargs) for f in self.bool_filters]
...@@ -505,6 +515,10 @@ class FilterConverter(filters.BaseFilterConverter): ...@@ -505,6 +515,10 @@ class FilterConverter(filters.BaseFilterConverter):
def conv_sqla_utils_choice(self, column, name, **kwargs): def conv_sqla_utils_choice(self, column, name, **kwargs):
return [f(column, name, **kwargs) for f in self.choice_type_filters] return [f(column, name, **kwargs) for f in self.choice_type_filters]
@filters.convert('ArrowType')
def conv_sqla_utils_arrow(self, column, name, **kwargs):
return [f(column, name, **kwargs) for f in self.arrow_type_filters]
@filters.convert('enum') @filters.convert('enum')
def conv_enum(self, column, name, options=None, **kwargs): def conv_enum(self, column, name, options=None, **kwargs):
if not options: if not options:
......
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