GSMEthesis commited on
Commit
521ef9a
·
verified ·
1 Parent(s): 9a60abb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +91 -1
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("### 📝 اطلاعات دموگرافیک")