Maryam Ilka commited on
Commit
eed3d4c
·
verified ·
1 Parent(s): 4b07d17

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +56 -35
app.py CHANGED
@@ -637,45 +637,19 @@ def attention_check1():
637
  else:
638
  st.warning("لطفاً یک گزینه را انتخاب کنید")
639
 
640
- def attention_check2():
641
- """سوال توجه دوم (بدون بررسی پاسخ صحیح)"""
642
- st.markdown("""
643
- <style>
644
- /* تضمین رنگ متن برای تمام سطوح */
645
- .st-ec, .st-ed, .st-ee, .st-ef, .st-eg, .st-eh, .st-ei, .st-ej {
646
- color: black !important;
647
- }
648
- </style>
649
- """, unsafe_allow_html=True)
650
- st.markdown("### سوال توجه")
651
-
652
- answer = st.radio(
653
- "نام اپلیکیشنی که در این تحقیق بررسی می‌شود چیست؟",
654
- ["اسنپ", "تپسی", "راهیار", "ماکسیم", "دیگر"],
655
- index=None,
656
- key="att2_radio"
657
- )
658
-
659
- if st.button("ادامه", key="att2_btn"):
660
- if answer:
661
- st.session_state.attention_check2 = answer
662
- st.session_state.current_page = "explanation_questions"
663
- st.rerun()
664
- else:
665
- st.warning("لطفاً یک گزینه را انتخاب کنید")
666
-
667
  def random_likert_questions():
668
  """نمایش تصادفی سوالات لیکرت"""
669
  if 'all_questions' not in st.session_state:
670
  # تعریف تمام سوالات با نوع مقیاس و لیبل مربوطه
671
- st.session_state.all_questions = [
672
- # سوالات informational (5 گزینه‌ای)
673
  {"key": "informational_1", "question": "پلتفرم به صورت صادقانه دلایل تغییر قیمت (مثل افزایش تقاضا یا شرایط جوی) را توضیح داد.", "scale": "5point", "label": "informational_1"},
674
  {"key": "informational_2", "question": "پلتفرم به طور کامل عوامل مؤثر بر قیمت (مثل ترافیک، تعداد رانندگان) را شرح داد.", "scale": "5point", "label": "informational_2"},
675
  {"key": "informational_3", "question": "دلایل ارائه‌شده برای تغییر قیمت منطقی و قابل قبول بود.", "scale": "5point", "label": "informational_3"},
676
  {"key": "informational_4", "question": "توضیحات درباره قیمت بلافاصله و در زمان مناسب نمایش داده شد.", "scale": "5point", "label": "informational_4"},
677
- {"key": "informational_5", "question": "توضیحات پلتفرم متناسب با شرایط سفر من (مثل مسیر یا ساعت درخواست) بود.", "scale": "5point", "label": "informational_5"},
678
-
 
 
679
  # سوالات distributive (7 گزینه‌ای)
680
  {"key": "distributive_1", "question": "قیمتی که به شما ارائه شد، منصفانه است.", "scale": "7point", "label": "distributive_1"},
681
  {"key": "distributive_2", "question": "قیمتی که به شما ارائه شد، معقول است.", "scale": "7point", "label": "distributive_2"},
@@ -688,11 +662,24 @@ def random_likert_questions():
688
  ]
689
 
690
  # تصادفی‌سازی ترتیب سوالات
691
- random.shuffle(st.session_state.all_questions)
 
 
 
 
 
 
 
 
692
  st.session_state.current_question_index = 0
693
 
694
- if st.session_state.current_question_index < len(st.session_state.all_questions):
695
- q = st.session_state.all_questions[st.session_state.current_question_index]
 
 
 
 
 
696
 
697
  # نمایش سوال بدون شماره
698
  answer = create_likert_question(q["question"], q["key"], q["scale"])
@@ -702,8 +689,42 @@ def random_likert_questions():
702
  time.sleep(0.5)
703
  st.rerun()
704
  else:
705
- st.session_state.current_page = "attention_check2"
 
 
 
 
 
706
  st.rerun()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
707
 
708
  def explanation_questions():
709
  """سوالات درباره توضیحات قیمت"""
 
637
  else:
638
  st.warning("لطفاً یک گزینه را انتخاب کنید")
639
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
640
  def random_likert_questions():
641
  """نمایش تصادفی سوالات لیکرت"""
642
  if 'all_questions' not in st.session_state:
643
  # تعریف تمام سوالات با نوع مقیاس و لیبل مربوطه
644
+ informational_questions = [
 
645
  {"key": "informational_1", "question": "پلتفرم به صورت صادقانه دلایل تغییر قیمت (مثل افزایش تقاضا یا شرایط جوی) را توضیح داد.", "scale": "5point", "label": "informational_1"},
646
  {"key": "informational_2", "question": "پلتفرم به طور کامل عوامل مؤثر بر قیمت (مثل ترافیک، تعداد رانندگان) را شرح داد.", "scale": "5point", "label": "informational_2"},
647
  {"key": "informational_3", "question": "دلایل ارائه‌شده برای تغییر قیمت منطقی و قابل قبول بود.", "scale": "5point", "label": "informational_3"},
648
  {"key": "informational_4", "question": "توضیحات درباره قیمت بلافاصله و در زمان مناسب نمایش داده شد.", "scale": "5point", "label": "informational_4"},
649
+ {"key": "informational_5", "question": "توضیحات پلتفرم متناسب با شرایط سفر من (مثل مسیر یا ساعت درخواست) بود.", "scale": "5point", "label": "informational_5"}
650
+ ]
651
+
652
+ distributive_procedural_questions = [
653
  # سوالات distributive (7 گزینه‌ای)
654
  {"key": "distributive_1", "question": "قیمتی که به شما ارائه شد، منصفانه است.", "scale": "7point", "label": "distributive_1"},
655
  {"key": "distributive_2", "question": "قیمتی که به شما ارائه شد، معقول است.", "scale": "7point", "label": "distributive_2"},
 
662
  ]
663
 
664
  # تصادفی‌سازی ترتیب سوالات
665
+ random.shuffle(distributive_procedural_questions)
666
+ random.shuffle(informational_questions)
667
+
668
+ # ذخیره سوالات در session_state به صورت جداگانه
669
+ st.session_state.distributive_procedural_questions = distributive_procedural_questions
670
+ st.session_state.informational_questions = informational_questions
671
+
672
+ # شروع با سوالات distributive/procedural
673
+ st.session_state.current_question_phase = "distributive_procedural"
674
  st.session_state.current_question_index = 0
675
 
676
+ if st.session_state.current_question_phase == "distributive_procedural":
677
+ questions = st.session_state.distributive_procedural_questions
678
+ else: # informational
679
+ questions = st.session_state.informational_questions
680
+
681
+ if st.session_state.current_question_index < len(questions):
682
+ q = questions[st.session_state.current_question_index]
683
 
684
  # نمایش سوال بدون شماره
685
  answer = create_likert_question(q["question"], q["key"], q["scale"])
 
689
  time.sleep(0.5)
690
  st.rerun()
691
  else:
692
+ if st.session_state.current_question_phase == "distributive_procedural":
693
+ # بعد از اتمام سوالات distributive/procedural، برو به اتنشن چک دوم
694
+ st.session_state.current_page = "attention_check2"
695
+ else:
696
+ # بعد از اتمام سوالات informational، برو به سوالات توضیحات
697
+ st.session_state.current_page = "explanation_questions"
698
  st.rerun()
699
+
700
+ def attention_check2():
701
+ """سوال توجه دوم (بدون بررسی پاسخ صحیح)"""
702
+ st.markdown("""
703
+ <style>
704
+ /* تضمین رنگ متن برای تمام سطوح */
705
+ .st-ec, .st-ed, .st-ee, .st-ef, .st-eg, .st-eh, .st-ei, .st-ej {
706
+ color: black !important;
707
+ }
708
+ </style>
709
+ """, unsafe_allow_html=True)
710
+ st.markdown("### سوال توجه")
711
+
712
+ answer = st.radio(
713
+ "نام اپلیکیشنی که در این تحقیق بررسی می‌شود چیست؟",
714
+ ["اسنپ", "تپسی", "راهیار", "ماکسیم", "دیگر"],
715
+ index=None,
716
+ key="att2_radio"
717
+ )
718
+
719
+ if st.button("ادامه", key="att2_btn"):
720
+ if answer:
721
+ st.session_state.attention_check2 = answer
722
+ # تغییر فاز به سوالات informational
723
+ st.session_state.current_question_phase = "informational"
724
+ st.session_state.current_question_index = 0
725
+ st.rerun()
726
+ else:
727
+ st.warning("لطفاً یک گزینه را انتخاب کنید")
728
 
729
  def explanation_questions():
730
  """سوالات درباره توضیحات قیمت"""