feat: admin public_base_url override (QR target)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
25
app.py
25
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}")
|
||||
|
||||
Reference in New Issue
Block a user