Esempio n. 1
0
 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
Esempio n. 2
0
 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
Esempio n. 3
0
 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
Esempio n. 4
0
 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