lanna_lalala;- commited on
Commit ·
2de6512
1
Parent(s): c3a4582
welcome css try
Browse files- 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 |
-
|
| 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 |
-
|
|
|
|
|
|
|
| 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 |
-
|
| 559 |
-
|
| 560 |
-
|
| 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
|