|
@@ -634,7 +634,7 @@ class ChatTable:
|
|
|
).params(title_key=f"%{search_text}%", content_key=search_text)
|
|
|
)
|
|
|
|
|
|
- # Tag filtering
|
|
|
+ # Check if there are any tags to filter, it should have all the tags
|
|
|
if "none" in tag_ids:
|
|
|
query = query.filter(
|
|
|
text(
|
|
@@ -651,7 +651,13 @@ class ChatTable:
|
|
|
and_(
|
|
|
*[
|
|
|
text(
|
|
|
- f"EXISTS (SELECT 1 FROM json_each(Chat.meta, '$.tags') AS tag WHERE tag.value = :tag_id_{tag_idx})"
|
|
|
+ f"""
|
|
|
+ EXISTS (
|
|
|
+ SELECT 1
|
|
|
+ FROM json_each(Chat.meta, '$.tags') AS tag
|
|
|
+ WHERE tag.value = :tag_id_{tag_idx}
|
|
|
+ )
|
|
|
+ """
|
|
|
).params(**{f"tag_id_{tag_idx}": tag_id})
|
|
|
for tag_idx, tag_id in enumerate(tag_ids)
|
|
|
]
|
|
@@ -675,7 +681,7 @@ class ChatTable:
|
|
|
).params(title_key=f"%{search_text}%", content_key=search_text)
|
|
|
)
|
|
|
|
|
|
- # Tag filtering
|
|
|
+ # Check if there are any tags to filter, it should have all the tags
|
|
|
if "none" in tag_ids:
|
|
|
query = query.filter(
|
|
|
text(
|
|
@@ -692,7 +698,13 @@ class ChatTable:
|
|
|
and_(
|
|
|
*[
|
|
|
text(
|
|
|
- f"EXISTS (SELECT 1 FROM json_array_elements_text(Chat.meta->'tags') AS tag WHERE tag = :tag_id_{tag_idx})"
|
|
|
+ f"""
|
|
|
+ EXISTS (
|
|
|
+ SELECT 1
|
|
|
+ FROM json_array_elements_text(Chat.meta->'tags') AS tag
|
|
|
+ WHERE tag = :tag_id_{tag_idx}
|
|
|
+ )
|
|
|
+ """
|
|
|
).params(**{f"tag_id_{tag_idx}": tag_id})
|
|
|
for tag_idx, tag_id in enumerate(tag_ids)
|
|
|
]
|