GSMEthesis commited on
Commit
40626ea
·
verified ·
1 Parent(s): f9c6fc3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +59 -49
app.py CHANGED
@@ -738,54 +738,6 @@ h3 {
738
  """, unsafe_allow_html=True)
739
 
740
 
741
-
742
-
743
- def custom_likert_slider(question_data):
744
- """نمایش سوال لیکرت با اسلایدر پیش‌فرض Streamlit و ویژگی‌های شخصی‌سازی شده"""
745
- question = question_data["question"]
746
- key = question_data["key"]
747
- points = question_data["scale"] # تعداد نقاط اسلایدر (مثلاً 7 نقطه)
748
- labels = question_data.get("labels", ["کمترین", "بیشترین"]) # لیبل‌های پیش‌فرض
749
-
750
- # بررسی اینکه مقدار قبلاً در session_state ذخیره شده یا نه
751
- if key not in st.session_state:
752
- # اگر مقدار ذخیره نشده باشد، مقدار پیش‌فرض وسط طیف انتخاب می‌شود
753
- st.session_state[key] = (points + 1) // 2
754
-
755
- # استفاده از key منحصر به فرد برای هر اسلایدر
756
- value = st.slider(
757
- question,
758
- min_value=1,
759
- max_value=points,
760
- value=st.session_state[key],
761
- step=1,
762
- key=f"slider_{key}" # استفاده از key منحصر به فرد برای اسلایدر
763
- )
764
-
765
- # ذخیره‌سازی مقدار انتخابی در session_state
766
- st.session_state[key] = value
767
-
768
- # نمایش مقدار انتخاب‌شده زیر اسلایدر
769
- st.markdown(f"<p style='text-align:center; color:#6a0dad; font-weight:bold;'>پاسخ انتخاب‌شده: {value}</p>", unsafe_allow_html=True)
770
-
771
- # شخصی‌سازی لیبل‌ها برای سر و ته اسلایدر
772
- st.markdown(f"""
773
- <style>
774
- div[role='slider'] {{
775
- color: #6a0dad;
776
- }}
777
- .stSlider .st-bf .st-bc {{
778
- display: flex;
779
- justify-content: space-between;
780
- }}
781
- .stSlider .st-bf .st-bc span {{
782
- font-size: 12px;
783
- }}
784
- </style>
785
- """, unsafe_allow_html=True)
786
-
787
- return value
788
-
789
  def create_ride_map():
790
  """ایجاد نقشه سفر با Folium - نسخه اصلاح شده با مناطق عمومی"""
791
  # نقاط تقریبی برای مناطق عمومی جنوب و غرب تهران
@@ -1193,6 +1145,64 @@ def attention_check1():
1193
  st.rerun()
1194
  else:
1195
  st.warning("لطفاً یک گزینه را انتخاب کنید")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1196
  def random_likert_questions():
1197
  """نمایش سوالات لیکرت به ترتیب مشخص با اسلایدر پیش‌فرض Streamlit"""
1198
  # تعریف گروه‌های سوالات
@@ -1280,7 +1290,7 @@ def random_likert_questions():
1280
  else:
1281
  st.session_state.current_page = "explanation_questions"
1282
  st.rerun()
1283
-
1284
  def explanation_questions():
1285
  """نمایش سوالات تکمیلی به صورت مر��له‌ای با دکمه ادامه"""
1286
  st.markdown("### 📋 سوالات تکمیلی")
 
738
  """, unsafe_allow_html=True)
739
 
740
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
741
  def create_ride_map():
742
  """ایجاد نقشه سفر با Folium - نسخه اصلاح شده با مناطق عمومی"""
743
  # نقاط تقریبی برای مناطق عمومی جنوب و غرب تهران
 
1145
  st.rerun()
1146
  else:
1147
  st.warning("لطفاً یک گزینه را انتخاب کنید")
1148
+
1149
+
1150
+ def custom_likert_slider(question_data):
1151
+ """نمایش سوال لیکرت با اسلایدر پیش‌فرض Streamlit و ویژگی‌های شخصی‌سازی شده"""
1152
+ question = question_data["question"]
1153
+ key = question_data["key"]
1154
+ points = question_data["scale"] # تعداد نقاط اسلایدر (مثلاً 7 نقطه)
1155
+ labels = question_data.get("labels", ["کمترین", "بیشترین"]) # لیبل‌های پیش‌فرض
1156
+
1157
+ # بررسی اینکه مقدار قبلاً در session_state ذخیره شده یا نه
1158
+ if key not in st.session_state:
1159
+ # اگر مقدار ذخیره نشده باشد، مقدار پیش‌فرض وسط طیف انتخاب می‌شود
1160
+ st.session_state[key] = (points + 1) // 2
1161
+
1162
+ # استفاده از key منحصر به فرد برای هر اسلایدر
1163
+ value = st.slider(
1164
+ question,
1165
+ min_value=1,
1166
+ max_value=points,
1167
+ value=st.session_state[key],
1168
+ step=1,
1169
+ key=f"slider_{key}" # استفاده از key منحصر به فرد برای اسلایدر
1170
+ )
1171
+
1172
+ # ذخیره‌سازی مقدار انتخابی در session_state
1173
+ st.session_state[key] = value
1174
+
1175
+ # نمایش مقدار انتخاب‌شده زیر اسلایدر
1176
+ st.markdown(f"<p style='text-align:center; color:#6a0dad; font-weight:bold;'>پاسخ انتخاب‌شده: {value}</p>", unsafe_allow_html=True)
1177
+
1178
+ # شخصی‌سازی لیبل‌ها برای سر و ته اسلایدر
1179
+ st.markdown(f"""
1180
+ <style>
1181
+ .stSlider .st-bf .st-bc {{
1182
+ display: flex;
1183
+ justify-content: space-between;
1184
+ font-size: 12px;
1185
+ }}
1186
+ .stSlider .st-bf .st-bc span {{
1187
+ color: #6a0dad;
1188
+ }}
1189
+ div[role='slider'] {{
1190
+ background: #e0e0e0 !important;
1191
+ height: 8px !important;
1192
+ border-radius: 5px !important;
1193
+ }}
1194
+ .stSlider input {{
1195
+ accent-color: #6a0dad !important;
1196
+ }}
1197
+ .stSlider .st-bf {{
1198
+ margin-top: 10px;
1199
+ }}
1200
+ </style>
1201
+ """, unsafe_allow_html=True)
1202
+
1203
+ return value
1204
+
1205
+
1206
  def random_likert_questions():
1207
  """نمایش سوالات لیکرت به ترتیب مشخص با اسلایدر پیش‌فرض Streamlit"""
1208
  # تعریف گروه‌های سوالات
 
1290
  else:
1291
  st.session_state.current_page = "explanation_questions"
1292
  st.rerun()
1293
+
1294
  def explanation_questions():
1295
  """نمایش سوالات تکمیلی به صورت مر��له‌ای با دکمه ادامه"""
1296
  st.markdown("### 📋 سوالات تکمیلی")