diff --git a/app.py b/app.py index bccce16..30b6c00 100644 --- a/app.py +++ b/app.py @@ -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}")