[feat] add case insensitive search for users (#3413)
Co-authored-by: Arc <33088785+arcbtc@users.noreply.github.com>
This commit is contained in:
+8
-2
@@ -424,6 +424,7 @@ class Operator(Enum):
|
||||
LE = "le"
|
||||
INCLUDE = "in"
|
||||
EXCLUDE = "ex"
|
||||
LIKE = "like"
|
||||
|
||||
@property
|
||||
def as_sql(self):
|
||||
@@ -443,6 +444,8 @@ class Operator(Enum):
|
||||
return ">="
|
||||
elif self == Operator.LE:
|
||||
return "<="
|
||||
elif self == Operator.LIKE:
|
||||
return "LIKE"
|
||||
else:
|
||||
raise ValueError("Unknown SQL Operator")
|
||||
|
||||
@@ -499,7 +502,7 @@ class Filter(BaseModel, Generic[TFilterModel]):
|
||||
return cls(field=field, op=op, values=values, model=model)
|
||||
|
||||
@property
|
||||
def statement(self):
|
||||
def statement(self) -> str:
|
||||
stmt = []
|
||||
for key in self.values.keys() if self.values else []:
|
||||
clean_key = key.split("__")[0]
|
||||
@@ -582,7 +585,10 @@ class Filters(BaseModel, Generic[TFilterModel]):
|
||||
for page_filter in self.filters:
|
||||
if page_filter.values:
|
||||
for key, value in page_filter.values.items():
|
||||
values[key] = value
|
||||
if page_filter.op == Operator.LIKE:
|
||||
values[key] = f"%{value}%"
|
||||
else:
|
||||
values[key] = value
|
||||
if self.search and self.model:
|
||||
values["search"] = f"%{self.search.lower()}%"
|
||||
return values
|
||||
|
||||
Reference in New Issue
Block a user