Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -1363,7 +1363,97 @@ def random_likert_questions():
|
|
| 1363 |
else:
|
| 1364 |
st.session_state.current_page = "explanation_questions"
|
| 1365 |
st.rerun()
|
| 1366 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1367 |
def demographic_form():
|
| 1368 |
"""فرم اطلاعات دموگرافیک"""
|
| 1369 |
st.markdown("### 📝 اطلاعات دموگرافیک")
|
|
|
|
| 1363 |
else:
|
| 1364 |
st.session_state.current_page = "explanation_questions"
|
| 1365 |
st.rerun()
|
| 1366 |
+
|
| 1367 |
+
def explanation_questions():
|
| 1368 |
+
"""نمایش سوالات تکمیلی به صورت مرحلهای با دکمه ادامه"""
|
| 1369 |
+
st.markdown("### 📋 سوالات تکمیلی")
|
| 1370 |
+
|
| 1371 |
+
# لیست سوالات به ترتیب نمایش
|
| 1372 |
+
questions = [
|
| 1373 |
+
{
|
| 1374 |
+
"key": "trust",
|
| 1375 |
+
"label": "آیا شما به تصمیمگیریهایی که توسط هوش مصنوعی انجام میشود اعتماد دارید؟",
|
| 1376 |
+
"options": ["بله", "خیر", "نظری ندارم"],
|
| 1377 |
+
"required": True
|
| 1378 |
+
},
|
| 1379 |
+
{
|
| 1380 |
+
"key": "pricing_method",
|
| 1381 |
+
"label": "به نظر شما پلتفرم قیمت را چگونه تعیین میکند؟",
|
| 1382 |
+
"options": [
|
| 1383 |
+
"به صورت دستی توسط تیم پلتفرم",
|
| 1384 |
+
"به صورت خودکار توسط هوش مصنوعی و الگوریتمها",
|
| 1385 |
+
"ترکیبی از هر دو روش",
|
| 1386 |
+
"نظری ندارم"
|
| 1387 |
+
],
|
| 1388 |
+
"required": True
|
| 1389 |
+
},
|
| 1390 |
+
{
|
| 1391 |
+
"key": "price_increase",
|
| 1392 |
+
"label": "آیا به نظر شما در این سفر افزایش قیمت نسبت به حالت طبیعی وجود داشته است؟",
|
| 1393 |
+
"options": ["بله", "خیر", "مطمئن نیستم"],
|
| 1394 |
+
"required": True
|
| 1395 |
+
},
|
| 1396 |
+
{
|
| 1397 |
+
"key": "explanation_received",
|
| 1398 |
+
"label": "آیا برای قیمت پیشنهادی این سفر، توضیحی به شما ارائه شد؟",
|
| 1399 |
+
"options": ["بله", "خیر"],
|
| 1400 |
+
"required": True
|
| 1401 |
+
},
|
| 1402 |
+
{
|
| 1403 |
+
"key": "explanation_type",
|
| 1404 |
+
"label": "اگر توضیحی دریافت کردید، این توضیح بیشتر به کدام مورد شباهت داشت؟",
|
| 1405 |
+
"options": [
|
| 1406 |
+
"بر اساس عواملی که در قیمتگذاری لحاظ شدهاند",
|
| 1407 |
+
"شامل سناریوهای جایگزین که میتوانستند قیمت متفاوتی ایجاد کنند",
|
| 1408 |
+
"توضیحی دریافت نکردم"
|
| 1409 |
+
],
|
| 1410 |
+
"required": False,
|
| 1411 |
+
"condition": lambda: st.session_state.get("explanation_received") == "بله"
|
| 1412 |
+
}
|
| 1413 |
+
]
|
| 1414 |
+
|
| 1415 |
+
# مقداردهی اولیه step اگر وجود ندارد
|
| 1416 |
+
if "explanation_step" not in st.session_state:
|
| 1417 |
+
st.session_state.explanation_step = 0
|
| 1418 |
+
|
| 1419 |
+
# اگر همه سوالات پاسخ داده شدهاند، به صفحه بعدی برو
|
| 1420 |
+
if st.session_state.explanation_step >= len(questions):
|
| 1421 |
+
st.session_state.current_page = "demographic"
|
| 1422 |
+
st.rerun()
|
| 1423 |
+
return
|
| 1424 |
+
|
| 1425 |
+
# دریافت سوال جاری
|
| 1426 |
+
current_q = questions[st.session_state.explanation_step]
|
| 1427 |
+
|
| 1428 |
+
# بررسی شرط نمایش برای سوالات اختیاری
|
| 1429 |
+
if "condition" in current_q and not current_q["condition"]():
|
| 1430 |
+
st.session_state[current_q["key"]] = "N/A"
|
| 1431 |
+
st.session_state.explanation_step += 1
|
| 1432 |
+
st.rerun()
|
| 1433 |
+
return
|
| 1434 |
+
|
| 1435 |
+
# نمایش سوال جاری
|
| 1436 |
+
answer = st.radio(
|
| 1437 |
+
current_q["label"],
|
| 1438 |
+
current_q["options"],
|
| 1439 |
+
index=None,
|
| 1440 |
+
key=f"explanation_q_{current_q['key']}"
|
| 1441 |
+
)
|
| 1442 |
+
|
| 1443 |
+
# دکمه ادامه
|
| 1444 |
+
if st.button("ادامه", key=f"continue_{current_q['key']}"):
|
| 1445 |
+
if answer is None and current_q["required"]:
|
| 1446 |
+
st.warning("لطفاً یک گزینه را انتخاب کنید")
|
| 1447 |
+
else:
|
| 1448 |
+
# ذخیره پاسخ
|
| 1449 |
+
st.session_state[current_q["key"]] = answer if answer is not None else "N/A"
|
| 1450 |
+
|
| 1451 |
+
# افزایش شماره مرحله
|
| 1452 |
+
st.session_state.explanation_step += 1
|
| 1453 |
+
|
| 1454 |
+
# رفرش صفحه برای نمایش سوال بعدی
|
| 1455 |
+
st.rerun()
|
| 1456 |
+
|
| 1457 |
def demographic_form():
|
| 1458 |
"""فرم اطلاعات دموگرافیک"""
|
| 1459 |
st.markdown("### 📝 اطلاعات دموگرافیک")
|