From d895de1b47ce5e5c6f1fa0385ac5f93da22612fe Mon Sep 17 00:00:00 2001 From: Typosaurus Date: Mon, 27 Jul 2026 10:08:16 +0000 Subject: [PATCH] ticket #146 attempt 1 --- devplacepy/routers/profile/index.py | 3 +++ devplacepy/schemas/content.py | 1 + 2 files changed, 4 insertions(+) diff --git a/devplacepy/routers/profile/index.py b/devplacepy/routers/profile/index.py index 58f2de98..26484688 100644 --- a/devplacepy/routers/profile/index.py +++ b/devplacepy/routers/profile/index.py @@ -36,6 +36,7 @@ from devplacepy.database.awards import ( from devplacepy.content import can_view_project, enrich_items from devplacepy.utils import ( get_current_user, + get_badge, require_user, require_user_api, time_ago, @@ -201,6 +202,8 @@ async def profile_page( item["poll"] = polls_map.get(uid) badges = list(get_table("badges").find(user_uid=profile_user["uid"])) + for b in badges: + b["icon"] = get_badge(b["badge_name"]).get("icon") achievements = build_achievements({b["badge_name"] for b in badges}) badge_total = sum(group["total"] for group in achievements) badge_earned = sum(group["earned"] for group in achievements) diff --git a/devplacepy/schemas/content.py b/devplacepy/schemas/content.py index a5d15b88..5e851c87 100644 --- a/devplacepy/schemas/content.py +++ b/devplacepy/schemas/content.py @@ -67,6 +67,7 @@ class PollOut(_Out): class BadgeOut(_Out): name: Optional[str] = Field(None, alias="badge_name") + icon: Optional[str] = None created_at: Optional[str] = None model_config = ConfigDict(populate_by_name=True)