soojeongcrystal commited on
Commit
2268456
ยท
verified ยท
1 Parent(s): 199a182

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -19
app.py CHANGED
@@ -46,40 +46,47 @@ st.markdown('<div class="header">๐Ÿ† ๋‹ค๋ฅธ ํŒ€์žฅ ๊ณ ๋ฏผํ•ด๊ฒฐ ๋„์™€์ฃผ๊ธฐ
46
 
47
  # Load Excel file into DataFrame
48
  df = pd.read_excel("painpoint2.xlsx")
49
- # ๋ฒ„ํŠผ์„ ๊ฐ€๋กœ๋กœ ๋‚˜์—ดํ•˜๊ธฐ ์œ„ํ•œ ์ปจํ…Œ์ด๋„ˆ
50
- buttons = st.columns(3)
51
- experience_levels = ['์ €์—ฐ์ฐจ ํŒ€์žฅ', '์ค‘๊ฐ„์—ฐ์ฐจ ํŒ€์žฅ', '๊ณ ์—ฐ์ฐจ ํŒ€์žฅ']
52
- button_state = {"active": None} # ์–ด๋–ค ๋ฒ„ํŠผ์ด ํ™œ์„ฑํ™”๋˜์—ˆ๋Š”์ง€ ์ถ”์ 
53
 
54
- # ์„ธ์…˜ ์ƒํƒœ ์ดˆ๊ธฐํ™”
55
- if 'active_button' not in st.session_state:
56
- st.session_state['active_button'] = None
 
57
 
58
  # ๋ฒ„ํŠผ ์ƒ์„ฑ ๋ฐ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ
59
  for i, experience_level in enumerate(experience_levels):
60
  with buttons[i]:
61
- if st.session_state['active_button'] == experience_level:
62
- st.button(experience_level, disabled=True) # ํ™œ์„ฑํ™”๋œ ๋ฒ„ํŠผ ๋น„ํ™œ์„ฑํ™” ํ‘œ์‹œ
63
- elif st.button(experience_level):
64
- st.session_state['active_button'] = experience_level # ์„ ํƒ๋œ ๋ฒ„ํŠผ ์ €์žฅ
 
 
 
 
 
 
 
 
65
  concerns = df[experience_level].dropna()
66
  if not concerns.empty:
67
  selected_concern = concerns.sample(n=1).iloc[0]
68
  st.session_state['selected_concern'] = selected_concern
69
- st.markdown(f"### ์„ ํƒ๋œ ๊ณ ๋ฏผ: {selected_concern}")
70
  else:
71
  st.error(f"{experience_level}์— ํ•ด๋‹นํ•˜๋Š” ๊ณ ๋ฏผ์ด ์—†์Šต๋‹ˆ๋‹ค.")
72
 
 
 
 
 
 
73
  # ์กฐ์–ธ ์ œ์ถœ ์„น์…˜
74
- if 'selected_concern' in st.session_state and st.session_state['active_button']:
75
- st.subheader(f"{st.session_state['active_button']}์˜ ๊ณ ๋ฏผ์— ๋Œ€ํ•œ ์กฐ์–ธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.")
76
- advice = st.text_area("์กฐ์–ธ:", height=100)
77
  if st.button("์กฐ์–ธ ์ œ์ถœํ•˜๊ธฐ"):
78
  if advice.strip(): # ์กฐ์–ธ์ด ๋น„์–ด์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ
79
- record_advice(st.session_state['active_button'], st.session_state['selected_concern'], advice.strip())
80
  st.success("์กฐ์–ธ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ œ์ถœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!")
81
- # ์ œ์ถœ ํ›„ ์„ธ์…˜ ์ƒํƒœ ์ดˆ๊ธฐํ™”
82
- st.session_state['selected_concern'] = None
83
- st.session_state['active_button'] = None
84
  else:
85
  st.error("์กฐ์–ธ์„ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.")
 
46
 
47
  # Load Excel file into DataFrame
48
  df = pd.read_excel("painpoint2.xlsx")
 
 
 
 
49
 
50
+ # ๋ฒ„ํŠผ ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ
51
+ button_containers = [st.container() for _ in experience_levels]
52
+ buttons = st.columns(len(experience_levels))
53
+ selected_concern = None
54
 
55
  # ๋ฒ„ํŠผ ์ƒ์„ฑ ๋ฐ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ
56
  for i, experience_level in enumerate(experience_levels):
57
  with buttons[i]:
58
+ # ๋ฒ„ํŠผ ์Šคํƒ€์ผ ์„ค์ •
59
+ button_style = f"border-radius:10px; border:1px solid #FFF; padding:10px; margin:3px; width:100%;"
60
+ if st.session_state.get('active_button') == experience_level:
61
+ # ์„ ํƒ๋œ ๋ฒ„ํŠผ์— ์ƒ‰์ƒ ์ ์šฉ
62
+ button_style += " background-color:#0d6efd; color:#FFF;"
63
+ else:
64
+ # ๊ธฐ๋ณธ ๋ฒ„ํŠผ ์Šคํƒ€์ผ
65
+ button_style += " background-color:#FFF; color:#333;"
66
+
67
+ # ๋ฒ„ํŠผ ๋ Œ๋”๋ง
68
+ if st.button(experience_level, key=f"button_{i}", help=f"Select {experience_level}", args=(experience_level,), kwargs={'style': button_style}):
69
+ st.session_state['active_button'] = experience_level
70
  concerns = df[experience_level].dropna()
71
  if not concerns.empty:
72
  selected_concern = concerns.sample(n=1).iloc[0]
73
  st.session_state['selected_concern'] = selected_concern
 
74
  else:
75
  st.error(f"{experience_level}์— ํ•ด๋‹นํ•˜๋Š” ๊ณ ๋ฏผ์ด ์—†์Šต๋‹ˆ๋‹ค.")
76
 
77
+ # ์„ ํƒ๋œ ๊ณ ๋ฏผ ๋‚ด์šฉ์„ ์ „์ฒด ์ปจํ…Œ์ด๋„ˆ์— ํ‘œ์‹œ
78
+ if 'selected_concern' in st.session_state:
79
+ with st.container():
80
+ st.markdown(f"### ์„ ํƒ๋œ ๊ณ ๋ฏผ: {st.session_state['selected_concern']}")
81
+
82
  # ์กฐ์–ธ ์ œ์ถœ ์„น์…˜
83
+ if 'selected_concern' in st.session_state and st.session_state.get('active_button'):
84
+ advice = st.text_area("๊ณ ๋ฏผ์— ๋Œ€ํ•œ ์กฐ์–ธ์„ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”:", height=100)
 
85
  if st.button("์กฐ์–ธ ์ œ์ถœํ•˜๊ธฐ"):
86
  if advice.strip(): # ์กฐ์–ธ์ด ๋น„์–ด์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ
87
+ record_advice(st.session_state.get('active_button'), st.session_state['selected_concern'], advice.strip())
88
  st.success("์กฐ์–ธ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ œ์ถœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!")
89
+ st.session_state['selected_concern'] = None # ์ œ์ถœ ํ›„ ์„ ํƒ๋œ ๊ณ ๋ฏผ ์ดˆ๊ธฐํ™”
90
+ st.session_state['active_button'] = None # ์„ ํƒ๋œ ๋ฒ„ํŠผ ์ดˆ๊ธฐํ™”
 
91
  else:
92
  st.error("์กฐ์–ธ์„ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.")