From 75aa0349ffcbb5d15c16c24886bdacc726f9a71e Mon Sep 17 00:00:00 2001 From: th-kim0823 Date: Mon, 27 Apr 2026 21:18:48 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20admin=20UX=20=E2=80=94=20QR=20placeholde?= =?UTF-8?q?r,=20=ED=88=AC=ED=91=9C=20=EC=83=81=ED=83=9C=20=EB=B6=84?= =?UTF-8?q?=EB=A6=AC,=20=EC=A0=9C=EB=AA=A9=20placeholder=20=EB=8B=A4?= =?UTF-8?q?=EC=96=91=ED=99=94,=20=EC=8B=9C=EC=83=81=20=EB=B9=88=EB=B8=94?= =?UTF-8?q?=EB=9F=AD=20=EA=B0=80=EB=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- app.py | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/app.py b/app.py index 7ee5416..e2eed6b 100644 --- a/app.py +++ b/app.py @@ -29,6 +29,15 @@ CATEGORIES = [ ("polish_team", "πŸ† 완성도상", "μ–‘μš°μ‚° 5개"), ("utility_team", "πŸ›  μ‹€μš©μ„±μƒ", "팜레슀트 5개"), ] +TITLE_PLACEHOLDERS = [ + "예: Slack λ©˜μ…˜ μžλ™ λΆ„λ₯˜κΈ°", + "예: kubectl 맀크둜 CLI", + "예: PR μš°μ„ μˆœμœ„ 큐", + "예: 회의 μΊ˜λ¦°λ” λΈŒλ¦¬ν•‘", + "예: μ‹ μž… κ°€μ΄λ“œ 봇", + "예: 배포 μ•Œλ¦Ό 봇", + "예: 점심 νˆ¬ν‘œ 봇", +] PRIZE_PRIORITY = ["utility_team", "polish_team", "fun_team"] SHOW_CSS = """ @@ -668,7 +677,7 @@ def render_admin(): new_override = st.text_input( "Override (λΉ„μ›Œλ‘λ©΄ μžλ™ 감지)", value=cur_override, - placeholder="http://192.168.1.10:8501", + placeholder="https://hackerthon.altair823.xyz", key="qr_override", ) if st.button("Override μ €μž₯"): @@ -676,9 +685,11 @@ def render_admin(): st.success("μ €μž₯됨.") st.rerun() + st.divider() + st.subheader("πŸ—³ νˆ¬ν‘œ μƒνƒœ") voting_open = is_voting_open() cur_label = "🟒 νˆ¬ν‘œ μ§„ν–‰ 쀑" if voting_open else "πŸ”΄ νˆ¬ν‘œ 마감됨" - st.markdown(f"### νˆ¬ν‘œ μƒνƒœ: {cur_label}") + st.markdown(f"**ν˜„μž¬**: {cur_label}") cc1, cc2 = st.columns(2) with cc1: if voting_open and st.button("πŸ›‘ νˆ¬ν‘œ 마감 (μ‹œμƒ μ‹œμž‘ μ „ ν•„μˆ˜)", type="primary"): @@ -807,11 +818,11 @@ def render_admin(): titles = get_titles() with st.form("titles_form"): new_titles = {} - for team in TEAMS: + for i, team in enumerate(TEAMS): new_titles[team] = st.text_input( team, value=titles.get(team, ""), - placeholder="예: μŠ¬λž™ λ©˜μ…˜ μžλ™ λΆ„λ₯˜κΈ°", + placeholder=TITLE_PLACEHOLDERS[i % len(TITLE_PLACEHOLDERS)], key=f"title_{team}", ) if st.form_submit_button("제λͺ© μ €μž₯"): @@ -914,7 +925,10 @@ def render_admin(): st.divider() st.subheader("🎀 μ‹œμƒμ‹ λ°œν‘œμš© (λ³΅μ‚¬ν•΄μ„œ ν™”λ©΄ 곡유)") - st.code("\n".join(public_lines), language="markdown") + if public_lines: + st.code("\n".join(public_lines), language="markdown") + else: + st.caption("아직 κ²°κ³Ό μ—†μŒ. νˆ¬ν‘œ 마감 ν›„ μžλ™ ν‘œμ‹œ.") st.divider() with st.expander("πŸ” 감사 둜그 (사칭 μΆ”μ μš©)"):