Maryam Ilka commited on
Commit
1bc2c53
·
verified ·
1 Parent(s): 58a30d8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +29 -23
app.py CHANGED
@@ -720,6 +720,16 @@ def explanation_questions():
720
  """, unsafe_allow_html=True)
721
  st.markdown("### 📋 سوالات تکمیلی")
722
 
 
 
 
 
 
 
 
 
 
 
723
  # سوال جدید 1: روش قیمت‌گذاری
724
  pricing_method = st.radio(
725
  "به نظر شما پلتفرم قیمت را چگونه تعیین می‌کند؟",
@@ -730,7 +740,7 @@ def explanation_questions():
730
  "نظری ندارم"
731
  ],
732
  index=None,
733
- key="pricing_method"
734
  )
735
 
736
  # سوال جدید 2: افزایش قیمت
@@ -740,7 +750,7 @@ def explanation_questions():
740
  "آیا به نظر شما در این سفر افزایش قیمت نسبت به حالت طبیعی وجود داشته است؟",
741
  ["بله", "خیر", "مطمئن نیستم"],
742
  index=None,
743
- key="price_increase"
744
  )
745
 
746
  # سوالات قبلی
@@ -751,7 +761,7 @@ def explanation_questions():
751
  "آیا برای قیمت پیشنهادی این سفر، توضیحی به شما ارائه شد؟",
752
  ["بله", "خیر"],
753
  index=None,
754
- key="explanation_received"
755
  )
756
 
757
  # سوال دوم (فقط اگر پاسخ بله باشد)
@@ -764,30 +774,26 @@ def explanation_questions():
764
  "توضیحی دریافت نکردم"
765
  ],
766
  index=None,
767
- key="explanation_type"
768
  )
769
 
770
- if st.button("ثبت پاسخ‌ها", type="primary"):
 
 
 
 
 
 
771
  # بررسی کامل بودن پاسخ‌ها
772
- if pricing_method is None:
773
  st.warning("لطفاً به سوال روش قیمت‌گذاری پاسخ دهید")
774
- elif price_increase is None:
775
  st.warning("لطفاً به سوال افزایش قیمت پاسخ دهید")
776
- elif explanation_received is None:
777
  st.warning("لطفاً به سوال دریافت توضیح پاسخ دهید")
778
- elif explanation_received == "بله" and explanation_type is None:
779
  st.warning("لطفاً به سوال نوع توضیح پاسخ دهید")
780
  else:
781
- # ذخیره پاسخ‌های جدید در session_state
782
- st.session_state.pricing_method = pricing_method
783
- st.session_state.price_increase = price_increase
784
-
785
- # ذخیره پاسخ‌های قبلی
786
- st.session_state.explanation_data = {
787
- "explanation_received": explanation_received,
788
- "explanation_type": explanation_type if explanation_received == "بله" else "N/A"
789
- }
790
-
791
  # جمع‌آوری تمام داده‌ها برای ذخیره‌سازی
792
  end_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
793
  start_time = datetime.strptime(st.session_state.start_time, "%Y-%m-%d %H:%M:%S")
@@ -803,10 +809,10 @@ def explanation_questions():
803
  "price_accepted": st.session_state.get("price_accepted", 0),
804
  "attention_check1": st.session_state.attention_check1,
805
  "attention_check2": st.session_state.attention_check2,
806
- "pricing_method": pricing_method,
807
- "price_increase": price_increase,
808
- "explanation_received": explanation_received,
809
- "explanation_type": explanation_type if explanation_received == "بله" else "N/A",
810
  **st.session_state.demographic_data
811
  }
812
 
 
720
  """, unsafe_allow_html=True)
721
  st.markdown("### 📋 سوالات تکمیلی")
722
 
723
+ # مقداردهی اولیه متغیرهای session_state اگر وجود ندارند
724
+ if 'pricing_method' not in st.session_state:
725
+ st.session_state.pricing_method = None
726
+ if 'price_increase' not in st.session_state:
727
+ st.session_state.price_increase = None
728
+ if 'explanation_received' not in st.session_state:
729
+ st.session_state.explanation_received = None
730
+ if 'explanation_type' not in st.session_state:
731
+ st.session_state.explanation_type = None
732
+
733
  # سوال جدید 1: روش قیمت‌گذاری
734
  pricing_method = st.radio(
735
  "به نظر شما پلتفرم قیمت را چگونه تعیین می‌کند؟",
 
740
  "نظری ندارم"
741
  ],
742
  index=None,
743
+ key="pricing_method_radio"
744
  )
745
 
746
  # سوال جدید 2: افزایش قیمت
 
750
  "آیا به نظر شما در این سفر افزایش قیمت نسبت به حالت طبیعی وجود داشته است؟",
751
  ["بله", "خیر", "مطمئن نیستم"],
752
  index=None,
753
+ key="price_increase_radio"
754
  )
755
 
756
  # سوالات قبلی
 
761
  "آیا برای قیمت پیشنهادی این سفر، توضیحی به شما ارائه شد؟",
762
  ["بله", "خیر"],
763
  index=None,
764
+ key="explanation_received_radio"
765
  )
766
 
767
  # سوال دوم (فقط اگر پاسخ بله باشد)
 
774
  "توضیحی دریافت نکردم"
775
  ],
776
  index=None,
777
+ key="explanation_type_radio"
778
  )
779
 
780
+ if st.button("ثبت پاسخ‌ها", type="primary", key="submit_explanation"):
781
+ # استفاده از مقادیر مستقیماً از session_state
782
+ st.session_state.pricing_method = st.session_state.get("pricing_method_radio")
783
+ st.session_state.price_increase = st.session_state.get("price_increase_radio")
784
+ st.session_state.explanation_received = st.session_state.get("explanation_received_radio")
785
+ st.session_state.explanation_type = st.session_state.get("explanation_type_radio")
786
+
787
  # بررسی کامل بودن پاسخ‌ها
788
+ if st.session_state.pricing_method is None:
789
  st.warning("لطفاً به سوال روش قیمت‌گذاری پاسخ دهید")
790
+ elif st.session_state.price_increase is None:
791
  st.warning("لطفاً به سوال افزایش قیمت پاسخ دهید")
792
+ elif st.session_state.explanation_received is None:
793
  st.warning("لطفاً به سوال دریافت توضیح پاسخ دهید")
794
+ elif st.session_state.explanation_received == "بله" and st.session_state.explanation_type is None:
795
  st.warning("لطفاً به سوال نوع توضیح پاسخ دهید")
796
  else:
 
 
 
 
 
 
 
 
 
 
797
  # جمع‌آوری تمام داده‌ها برای ذخیره‌سازی
798
  end_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
799
  start_time = datetime.strptime(st.session_state.start_time, "%Y-%m-%d %H:%M:%S")
 
809
  "price_accepted": st.session_state.get("price_accepted", 0),
810
  "attention_check1": st.session_state.attention_check1,
811
  "attention_check2": st.session_state.attention_check2,
812
+ "pricing_method": st.session_state.pricing_method,
813
+ "price_increase": st.session_state.price_increase,
814
+ "explanation_received": st.session_state.explanation_received,
815
+ "explanation_type": st.session_state.explanation_type if st.session_state.explanation_received == "بله" else "N/A",
816
  **st.session_state.demographic_data
817
  }
818