Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -680,26 +680,31 @@ def custom_likert_slider(question, key, points=7):
|
|
| 680 |
7: ["کاملاً مخالفم", "نسبتاً مخالفم", "کمی مخالفم", "خنثی", "کمی موافقم", "نسبتاً موافقم", "کاملاً موافقم"]
|
| 681 |
}
|
| 682 |
labels = options.get(points)
|
| 683 |
-
|
| 684 |
-
slider_id = f"slider_{key}"
|
| 685 |
default_value = (points + 1) // 2
|
| 686 |
|
| 687 |
-
|
| 688 |
-
|
| 689 |
-
|
| 690 |
-
|
|
|
|
| 691 |
{''.join(f"<span>{label}</span>" for label in labels)}
|
| 692 |
</div>
|
| 693 |
-
|
| 694 |
-
|
| 695 |
-
|
| 696 |
-
|
| 697 |
-
|
| 698 |
-
|
| 699 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 700 |
|
| 701 |
-
|
| 702 |
-
return components.html(html, height=150)
|
| 703 |
|
| 704 |
def create_ride_map():
|
| 705 |
"""ایجاد نقشه سفر با Folium - نسخه اصلاح شده با مناطق عمومی"""
|
|
@@ -1094,8 +1099,7 @@ def attention_check1():
|
|
| 1094 |
st.warning("لطفاً یک گزینه را انتخاب کنید")
|
| 1095 |
|
| 1096 |
def random_likert_questions():
|
| 1097 |
-
"""نمایش سوالات لیکرت با اس
|
| 1098 |
-
# تعریف گروههای سوالات با ترتیب مشخص
|
| 1099 |
question_groups = [
|
| 1100 |
{
|
| 1101 |
"title": "عدالت توزیعی",
|
|
@@ -1135,19 +1139,15 @@ def random_likert_questions():
|
|
| 1135 |
}
|
| 1136 |
]
|
| 1137 |
|
| 1138 |
-
# مقداردهی اولیه
|
| 1139 |
if 'current_likert_group' not in st.session_state:
|
| 1140 |
st.session_state.current_likert_group = 0
|
| 1141 |
st.session_state.answers = st.session_state.get('answers', {})
|
| 1142 |
|
| 1143 |
-
# دریافت گروه جاری
|
| 1144 |
current_group = question_groups[st.session_state.current_likert_group]
|
| 1145 |
|
| 1146 |
-
# نمایش عنوان گروه
|
| 1147 |
st.markdown(f"## {current_group['title']}")
|
| 1148 |
st.markdown("---")
|
| 1149 |
|
| 1150 |
-
# ثبت پاسخهای جاری
|
| 1151 |
all_answered = True
|
| 1152 |
for question in current_group['questions']:
|
| 1153 |
value = custom_likert_slider(
|
|
@@ -1155,24 +1155,23 @@ def random_likert_questions():
|
|
| 1155 |
key=question["key"],
|
| 1156 |
points=question["scale"]
|
| 1157 |
)
|
| 1158 |
-
if
|
| 1159 |
st.session_state.answers[question["key"]] = value
|
| 1160 |
else:
|
| 1161 |
all_answered = False
|
| 1162 |
|
| 1163 |
-
# دکمه ادامه یا اتمام
|
| 1164 |
button_label = "ادامه به گروه بعدی" if st.session_state.current_likert_group < len(question_groups) - 1 else "اتمام پرسشنامه"
|
| 1165 |
|
| 1166 |
-
if st.button(button_label
|
| 1167 |
-
if
|
| 1168 |
-
st.session_state.current_likert_group
|
| 1169 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1170 |
else:
|
| 1171 |
-
st.
|
| 1172 |
-
st.rerun()
|
| 1173 |
-
|
| 1174 |
-
if not all_answered:
|
| 1175 |
-
st.warning("لطفاً به تمام سوالات این بخش پاسخ دهید.")
|
| 1176 |
|
| 1177 |
|
| 1178 |
def explanation_questions():
|
|
|
|
| 680 |
7: ["کاملاً مخالفم", "نسبتاً مخالفم", "کمی مخالفم", "خنثی", "کمی موافقم", "نسبتاً موافقم", "کاملاً موافقم"]
|
| 681 |
}
|
| 682 |
labels = options.get(points)
|
|
|
|
|
|
|
| 683 |
default_value = (points + 1) // 2
|
| 684 |
|
| 685 |
+
st.markdown(f"<div style='font-family: B Nazanin; direction: rtl; font-size: 16px; font-weight: bold;'>{question}</div>", unsafe_allow_html=True)
|
| 686 |
+
|
| 687 |
+
st.markdown(
|
| 688 |
+
f"""
|
| 689 |
+
<div style='display: flex; justify-content: space-between; font-size: 12px; direction: rtl; margin-bottom: -10px;'>
|
| 690 |
{''.join(f"<span>{label}</span>" for label in labels)}
|
| 691 |
</div>
|
| 692 |
+
""", unsafe_allow_html=True
|
| 693 |
+
)
|
| 694 |
+
|
| 695 |
+
# اسلایدر واقعی Streamlit (قابل ذخیرهسازی)
|
| 696 |
+
value = st.slider(
|
| 697 |
+
label=" ",
|
| 698 |
+
min_value=1,
|
| 699 |
+
max_value=points,
|
| 700 |
+
value=default_value,
|
| 701 |
+
step=1,
|
| 702 |
+
key=key
|
| 703 |
+
)
|
| 704 |
+
|
| 705 |
+
st.markdown(f"<p style='text-align: center; color: #6a0dad;'>پاسخ شما: <strong>{value}</strong></p>", unsafe_allow_html=True)
|
| 706 |
|
| 707 |
+
return value
|
|
|
|
| 708 |
|
| 709 |
def create_ride_map():
|
| 710 |
"""ایجاد نقشه سفر با Folium - نسخه اصلاح شده با مناطق عمومی"""
|
|
|
|
| 1099 |
st.warning("لطفاً یک گزینه را انتخاب کنید")
|
| 1100 |
|
| 1101 |
def random_likert_questions():
|
| 1102 |
+
"""نمایش سوالات لیکرت با استایل زیبا و مقدار قابل ذخیرهسازی"""
|
|
|
|
| 1103 |
question_groups = [
|
| 1104 |
{
|
| 1105 |
"title": "عدالت توزیعی",
|
|
|
|
| 1139 |
}
|
| 1140 |
]
|
| 1141 |
|
|
|
|
| 1142 |
if 'current_likert_group' not in st.session_state:
|
| 1143 |
st.session_state.current_likert_group = 0
|
| 1144 |
st.session_state.answers = st.session_state.get('answers', {})
|
| 1145 |
|
|
|
|
| 1146 |
current_group = question_groups[st.session_state.current_likert_group]
|
| 1147 |
|
|
|
|
| 1148 |
st.markdown(f"## {current_group['title']}")
|
| 1149 |
st.markdown("---")
|
| 1150 |
|
|
|
|
| 1151 |
all_answered = True
|
| 1152 |
for question in current_group['questions']:
|
| 1153 |
value = custom_likert_slider(
|
|
|
|
| 1155 |
key=question["key"],
|
| 1156 |
points=question["scale"]
|
| 1157 |
)
|
| 1158 |
+
if value:
|
| 1159 |
st.session_state.answers[question["key"]] = value
|
| 1160 |
else:
|
| 1161 |
all_answered = False
|
| 1162 |
|
|
|
|
| 1163 |
button_label = "ادامه به گروه بعدی" if st.session_state.current_likert_group < len(question_groups) - 1 else "اتمام پرسشنامه"
|
| 1164 |
|
| 1165 |
+
if st.button(button_label):
|
| 1166 |
+
if all_answered:
|
| 1167 |
+
if st.session_state.current_likert_group < len(question_groups) - 1:
|
| 1168 |
+
st.session_state.current_likert_group += 1
|
| 1169 |
+
st.rerun()
|
| 1170 |
+
else:
|
| 1171 |
+
st.session_state.current_page = "explanation_questions"
|
| 1172 |
+
st.rerun()
|
| 1173 |
else:
|
| 1174 |
+
st.warning("لطفاً به تمام سوالات این بخش پاسخ دهید.")
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1175 |
|
| 1176 |
|
| 1177 |
def explanation_questions():
|