feat: stage intro — 팀편성 4×2 그리드 + 순서/시상 박스
This commit is contained in:
38
app.py
38
app.py
@@ -376,9 +376,43 @@ def render_show():
|
||||
|
||||
|
||||
def render_stage_intro(data):
|
||||
st.markdown('<div class="show-stage-title">🚀 해커톤</div>', unsafe_allow_html=True)
|
||||
st.markdown('<div class="show-stage-title">🚀 MLOps 해커톤 2026</div>', unsafe_allow_html=True)
|
||||
st.markdown('<div class="show-stage-sub">팀 편성</div>', unsafe_allow_html=True)
|
||||
st.info("Task 9에서 구현")
|
||||
|
||||
people = data.get("people", [])
|
||||
teams = {}
|
||||
for p in people:
|
||||
teams.setdefault(p["team"], []).append(p["name"])
|
||||
team_names = sorted(teams.keys())
|
||||
|
||||
# 4×2 그리드 (7팀 + 1 빈 칸)
|
||||
rows = [team_names[i:i + 4] for i in range(0, len(team_names), 4)]
|
||||
for row in rows:
|
||||
cols = st.columns(4)
|
||||
for col, team in zip(cols, row):
|
||||
members = teams[team]
|
||||
members_html = "<br>".join(members)
|
||||
with col:
|
||||
st.markdown(
|
||||
f'<div class="show-team-card">'
|
||||
f' <div class="show-team-name">{team}</div>'
|
||||
f' <div class="show-team-member">{members_html}</div>'
|
||||
f'</div>',
|
||||
unsafe_allow_html=True,
|
||||
)
|
||||
|
||||
st.markdown(
|
||||
'<div class="show-info-box">'
|
||||
'<b>📋 순서:</b> 팀 편성 → 주제 소개 → 해킹 (2시간) → 발표 → 투표 → 시상'
|
||||
'</div>',
|
||||
unsafe_allow_html=True,
|
||||
)
|
||||
st.markdown(
|
||||
'<div class="show-info-box">'
|
||||
'<b>🏆 시상 부문:</b> 🎉 재미상 · 🏆 완성도상 · 🛠 실용성상 (1팀 1상)'
|
||||
'</div>',
|
||||
unsafe_allow_html=True,
|
||||
)
|
||||
|
||||
|
||||
def render_stage_topics(data):
|
||||
|
||||
Reference in New Issue
Block a user