feat: admin public_base_url override (QR target)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
th-kim0823
2026-04-27 20:18:03 +09:00
parent c3bbb4e959
commit 3373f5729f

25
app.py
View File

@@ -154,6 +154,16 @@ def set_voting_open(flag):
update_data(_fn)
def set_public_base_url(url):
def _fn(data):
data.setdefault("settings", {})
if url:
data["settings"]["public_base_url"] = url.strip()
else:
data["settings"].pop("public_base_url", None)
update_data(_fn)
VALID_STAGES = ("intro", "topics", "vote")
@@ -646,6 +656,21 @@ def render_admin():
if cur == "vote":
st.caption(" vote stage 진입 시 투표가 자동 open 됨. 마감은 아래 '투표 마감' 버튼으로.")
st.markdown("**📱 모바일 QR target URL**")
cur_url = compute_vote_url()
st.caption(f"현재: `{cur_url}`")
cur_override = load_data().get("settings", {}).get("public_base_url", "")
new_override = st.text_input(
"Override (비워두면 자동 감지)",
value=cur_override,
placeholder="http://192.168.1.10:8501",
key="qr_override",
)
if st.button("Override 저장"):
set_public_base_url(new_override)
st.success("저장됨.")
st.rerun()
voting_open = is_voting_open()
cur_label = "🟢 투표 진행 중" if voting_open else "🔴 투표 마감됨"
st.markdown(f"### 투표 상태: {cur_label}")