fix(listes): exclure les pages-supports de templates des listes utilisateur
Les pages-supports créées par TemplateService._create_holder (une par template, search_excluded=1, « masquées, jamais listées ») n'étaient exclues d'aucune liste : semées à l'init avec updated_at = now (99 sur une base fraîche), elles occupaient toutes les places des listes triées par récence (LIMIT 50/20/8) devant les vraies pages — cause racine de 7 échecs CI (library recents/private/workspace, sidebar recents, projets builtin, mentions agent), dont l'instabilité du test provenance (égalité de seconde avec le seed). Filtre COALESCE(search_excluded, 0) = 0 ajouté : onglets bibliothèque (meetings, recents, favorites, shared, published, private, workspace), sidebar Recents, projets builtin, scans de pages des mentions agent.
This commit is contained in:
@@ -107,6 +107,7 @@ def _recent_sidebar_pages(uid: int, limit: int = 8) -> list:
|
||||
FROM pages p
|
||||
LEFT JOIN workspaces w ON w.id = p.workspace_id
|
||||
WHERE p.deleted_at IS NULL AND p.parent_section != 'Trash'
|
||||
AND COALESCE(p.search_excluded, 0) = 0
|
||||
AND (w.owner_id = ? OR p.workspace_id IS NULL)
|
||||
AND REPLACE(COALESCE(p.content,''), ' ', '')
|
||||
NOT LIKE '%"type":"meeting"%'
|
||||
|
||||
@@ -222,7 +222,8 @@ async def list_workspace_projects(request: Request):
|
||||
builtin = []
|
||||
with get_conn() as conn:
|
||||
rows = conn.execute(
|
||||
"SELECT id, title FROM pages WHERE parent_id IS NULL AND collection_row_id IS NULL ORDER BY updated_at DESC LIMIT 20"
|
||||
"SELECT id, title FROM pages WHERE parent_id IS NULL AND collection_row_id IS NULL "
|
||||
"AND COALESCE(search_excluded, 0) = 0 ORDER BY updated_at DESC LIMIT 20"
|
||||
).fetchall()
|
||||
# A23 : une seule agrégation GROUP BY au lieu d'un COUNT par ligne.
|
||||
counts = {}
|
||||
|
||||
Reference in New Issue
Block a user