From e62f99553a5730098706cd2bf220e9260c2a69c1 Mon Sep 17 00:00:00 2001 From: Deeman Date: Mon, 16 Feb 2026 12:17:15 +0100 Subject: [PATCH] fix admin template collision with auth/dashboard blueprints Namespace admin templates under admin/ subdirectory to prevent Quart's template loader from resolving auth's login.html and dashboard's index.html instead of admin's own templates. Co-Authored-By: Claude Opus 4.6 --- padelnomics/src/padelnomics/admin/routes.py | 10 +++++----- .../padelnomics/admin/templates/{ => admin}/index.html | 0 .../padelnomics/admin/templates/{ => admin}/login.html | 0 .../padelnomics/admin/templates/{ => admin}/tasks.html | 0 .../admin/templates/{ => admin}/user_detail.html | 0 .../padelnomics/admin/templates/{ => admin}/users.html | 0 6 files changed, 5 insertions(+), 5 deletions(-) rename padelnomics/src/padelnomics/admin/templates/{ => admin}/index.html (100%) rename padelnomics/src/padelnomics/admin/templates/{ => admin}/login.html (100%) rename padelnomics/src/padelnomics/admin/templates/{ => admin}/tasks.html (100%) rename padelnomics/src/padelnomics/admin/templates/{ => admin}/user_detail.html (100%) rename padelnomics/src/padelnomics/admin/templates/{ => admin}/users.html (100%) diff --git a/padelnomics/src/padelnomics/admin/routes.py b/padelnomics/src/padelnomics/admin/routes.py index 276d3ba..e62f8e0 100644 --- a/padelnomics/src/padelnomics/admin/routes.py +++ b/padelnomics/src/padelnomics/admin/routes.py @@ -189,7 +189,7 @@ async def login(): else: await flash("Invalid password.", "error") - return await render_template("login.html") + return await render_template("admin/login.html") @bp.route("/logout", methods=["POST"]) @@ -210,7 +210,7 @@ async def index(): failed_tasks = await get_failed_tasks() return await render_template( - "index.html", + "admin/index.html", stats=stats, recent_users=recent_users, failed_tasks=failed_tasks, @@ -229,7 +229,7 @@ async def users(): user_list = await get_users(limit=per_page, offset=offset, search=search or None) return await render_template( - "users.html", + "admin/users.html", users=user_list, search=search, page=page, @@ -245,7 +245,7 @@ async def user_detail(user_id: int): await flash("User not found.", "error") return redirect(url_for("admin.users")) - return await render_template("user_detail.html", user=user) + return await render_template("admin/user_detail.html", user=user) @bp.route("/users//impersonate", methods=["POST"]) @@ -284,7 +284,7 @@ async def tasks(): failed = await get_failed_tasks() return await render_template( - "tasks.html", + "admin/tasks.html", tasks=task_list, failed_tasks=failed, ) diff --git a/padelnomics/src/padelnomics/admin/templates/index.html b/padelnomics/src/padelnomics/admin/templates/admin/index.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/index.html rename to padelnomics/src/padelnomics/admin/templates/admin/index.html diff --git a/padelnomics/src/padelnomics/admin/templates/login.html b/padelnomics/src/padelnomics/admin/templates/admin/login.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/login.html rename to padelnomics/src/padelnomics/admin/templates/admin/login.html diff --git a/padelnomics/src/padelnomics/admin/templates/tasks.html b/padelnomics/src/padelnomics/admin/templates/admin/tasks.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/tasks.html rename to padelnomics/src/padelnomics/admin/templates/admin/tasks.html diff --git a/padelnomics/src/padelnomics/admin/templates/user_detail.html b/padelnomics/src/padelnomics/admin/templates/admin/user_detail.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/user_detail.html rename to padelnomics/src/padelnomics/admin/templates/admin/user_detail.html diff --git a/padelnomics/src/padelnomics/admin/templates/users.html b/padelnomics/src/padelnomics/admin/templates/admin/users.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/users.html rename to padelnomics/src/padelnomics/admin/templates/admin/users.html