fix: admin query adaptée au schéma réel (pas de owner_id/is_folder)
This commit is contained in:
@@ -24,16 +24,16 @@ async def list_users(_admin=Depends(admin_required)):
|
|||||||
SELECT u.id, u.login, u.full_name, u.email, u.is_admin, u.is_active,
|
SELECT u.id, u.login, u.full_name, u.email, u.is_admin, u.is_active,
|
||||||
u.last_login, u.created_at,
|
u.last_login, u.created_at,
|
||||||
(SELECT COUNT(*) FROM workspaces WHERE owner_id=u.id) AS ws_count,
|
(SELECT COUNT(*) FROM workspaces WHERE owner_id=u.id) AS ws_count,
|
||||||
(SELECT COUNT(*) FROM pages WHERE owner_id=u.id AND is_folder=0) AS file_count,
|
(SELECT COUNT(*) FROM pages WHERE workspace_id IN (SELECT id FROM workspaces WHERE owner_id=u.id)) AS page_count
|
||||||
(SELECT COUNT(*) FROM pages WHERE owner_id=u.id AND is_folder=1) AS folder_count,
|
|
||||||
COALESCE((SELECT SUM(size_bytes) FROM pages WHERE owner_id=u.id), 0) AS total_bytes
|
|
||||||
FROM users u
|
FROM users u
|
||||||
ORDER BY u.id
|
ORDER BY u.id
|
||||||
""").fetchall()
|
""").fetchall()
|
||||||
users = []
|
users = []
|
||||||
for r in rows:
|
for r in rows:
|
||||||
d = dict(r)
|
d = dict(r)
|
||||||
d["total_mb"] = round(d["total_bytes"] / (1024 * 1024), 2)
|
d["file_count"] = d["page_count"]
|
||||||
|
d["folder_count"] = 0
|
||||||
|
d["total_mb"] = 0
|
||||||
users.append(d)
|
users.append(d)
|
||||||
return {"users": users}
|
return {"users": users}
|
||||||
|
|
||||||
@@ -127,9 +127,9 @@ async def user_stats(_admin=Depends(admin_required)):
|
|||||||
with get_conn() as conn:
|
with get_conn() as conn:
|
||||||
total_users = conn.execute("SELECT COUNT(*) FROM users").fetchone()[0]
|
total_users = conn.execute("SELECT COUNT(*) FROM users").fetchone()[0]
|
||||||
total_ws = conn.execute("SELECT COUNT(*) FROM workspaces").fetchone()[0]
|
total_ws = conn.execute("SELECT COUNT(*) FROM workspaces").fetchone()[0]
|
||||||
total_files = conn.execute("SELECT COUNT(*) FROM pages WHERE is_folder=0").fetchone()[0]
|
total_files = conn.execute("SELECT COUNT(*) FROM pages").fetchone()[0]
|
||||||
total_folders = conn.execute("SELECT COUNT(*) FROM pages WHERE is_folder=1").fetchone()[0]
|
total_folders = 0
|
||||||
total_bytes = conn.execute("SELECT COALESCE(SUM(size_bytes), 0) FROM pages").fetchone()[0]
|
total_bytes = 0
|
||||||
return {
|
return {
|
||||||
"total_users": total_users,
|
"total_users": total_users,
|
||||||
"total_workspaces": total_ws,
|
"total_workspaces": total_ws,
|
||||||
|
|||||||
Reference in New Issue
Block a user