def _domain_column(self, operator, column, key=None): database = Transaction().database column = database.json_get(super()._domain_column(operator, column), key) if operator.endswith('like'): column = Cast(column, database.sql_type('VARCHAR').base) if self.search_unaccented and operator.endswith('ilike'): column = database.unaccent(column) return column
def _domain_value(self, operator, value): if backend.name() == 'sqlite' and isinstance(value, bool): # json_extract returns 0 for JSON false and 1 for JSON true value = int(value) if isinstance(value, (Select, CombiningQuery)): return value if operator.endswith('in'): return [dumps(v) for v in value] else: value = dumps(value) if self.search_unaccented and operator.endswith('ilike'): database = Transaction().database value = database.unaccent(value) return value
def _domain_column(self, operator, column): column = super(Char, self)._domain_column(operator, column) if self.search_unaccented and operator.endswith('ilike'): database = Transaction().database column = database.unaccent(column) return column
def _domain_value(self, operator, value): value = super(Char, self)._domain_value(operator, value) if self.search_unaccented and operator.endswith('ilike'): database = Transaction().database value = database.unaccent(value) return value