lanna_lalala;- commited on
Commit
2de6512
·
1 Parent(s): c3a4582

welcome css try

Browse files
Files changed (1) hide show
  1. phase/Student_view/lesson.py +43 -27
phase/Student_view/lesson.py CHANGED
@@ -4,7 +4,7 @@ import re
4
  import os
5
  from utils import db as dbapi
6
  from utils import api as backend_api # unified backend client
7
- import phase.Student_view.quiz as quiz_page
8
 
9
 
10
 
@@ -33,6 +33,42 @@ _SS_DEFAULTS = {
33
  "selected_quiz": None,
34
  }
35
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
 
37
  def _ensure_state():
38
  for k, v in _SS_DEFAULTS.items():
@@ -546,7 +582,9 @@ def _render_lesson():
546
  if is_last:
547
  if st.button("Complete Module →", key="complete_btn"):
548
  st.session_state.show_quiz_prompt = True
549
- st.rerun()
 
 
550
  else:
551
  if st.button("Next Unit →", key="next_btn"):
552
  st.session_state.topic_idx += 1
@@ -555,31 +593,9 @@ def _render_lesson():
555
 
556
  # ---- Post-module modal: offer to start Quiz 1 ----
557
  if st.session_state.get("show_quiz_prompt"):
558
- # Streamlit 1.25+ has st.modal. If you're on an older version,
559
- # you can recreate this with a custom overlay.
560
- with st.dialog("Ready for a quick check-in?"):
561
- st.write("Would you like to do **Quiz 1** to strengthen your knowledge?")
562
- col_ok, col_skip = st.columns(2)
563
-
564
- with col_ok:
565
- if st.button("Yes, start Quiz 1"):
566
- st.session_state.show_quiz_prompt = False
567
- st.session_state.mode = "quiz"
568
- # Assuming your built-in quizzes_data has quiz id 1 for this module
569
- st.session_state.selected_quiz = 1
570
- # Optional: make sure quiz starts fresh
571
- st.session_state.current_q = 0
572
- st.session_state.answers = {}
573
- st.rerun()
574
-
575
- with col_skip:
576
- if st.button("Maybe later"):
577
- st.session_state.show_quiz_prompt = False
578
- # Return to catalog like before
579
- st.session_state.mode = "catalog"
580
- st.session_state.module_id = None
581
- st.session_state.topic_idx = 0
582
- st.rerun()
583
 
584
  # -----------------------------
585
  # Sidebar with Progress & Units
 
4
  import os
5
  from utils import db as dbapi
6
  from utils import api as backend_api # unified backend client
7
+ from phase.Student_view import quiz as quiz_page
8
 
9
 
10
 
 
33
  "selected_quiz": None,
34
  }
35
 
36
+ # Works on Streamlit versions that support st.dialog
37
+ if hasattr(st, "dialog"):
38
+ @st.dialog("Ready for a quick check-in?")
39
+ def _quiz_prompt_dialog():
40
+ st.write("Would you like to do **Quiz 1** to strengthen your knowledge?")
41
+ c1, c2 = st.columns(2)
42
+ if c1.button("Yes, start Quiz 1", key="dlg_yes"):
43
+ st.session_state.show_quiz_prompt = False
44
+ st.session_state.mode = "quiz"
45
+ st.session_state.selected_quiz = 1
46
+ st.session_state.current_q = 0
47
+ st.session_state.answers = {}
48
+ st.rerun()
49
+ if c2.button("Maybe later", key="dlg_no"):
50
+ st.session_state.show_quiz_prompt = False
51
+ st.session_state.mode = "catalog"
52
+ st.session_state.module_id = None
53
+ st.session_state.topic_idx = 0
54
+ st.rerun()
55
+ else:
56
+ # Fallback: inline banner if st.dialog isn't available
57
+ def _quiz_prompt_dialog():
58
+ st.info("Would you like to do **Quiz 1** to strengthen your knowledge?")
59
+ c1, c2 = st.columns(2)
60
+ if c1.button("Yes, start Quiz 1", key="inline_yes"):
61
+ st.session_state.mode = "quiz"
62
+ st.session_state.selected_quiz = 1
63
+ st.session_state.current_q = 0
64
+ st.session_state.answers = {}
65
+ st.rerun()
66
+ if c2.button("Maybe later", key="inline_no"):
67
+ st.session_state.mode = "catalog"
68
+ st.session_state.module_id = None
69
+ st.session_state.topic_idx = 0
70
+ st.rerun()
71
+
72
 
73
  def _ensure_state():
74
  for k, v in _SS_DEFAULTS.items():
 
582
  if is_last:
583
  if st.button("Complete Module →", key="complete_btn"):
584
  st.session_state.show_quiz_prompt = True
585
+ _quiz_prompt_dialog() # open now
586
+ st.stop() # prevent the rest of the page from rendering under it
587
+
588
  else:
589
  if st.button("Next Unit →", key="next_btn"):
590
  st.session_state.topic_idx += 1
 
593
 
594
  # ---- Post-module modal: offer to start Quiz 1 ----
595
  if st.session_state.get("show_quiz_prompt"):
596
+ _quiz_prompt_dialog()
597
+
598
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
599
 
600
  # -----------------------------
601
  # Sidebar with Progress & Units