elkay: lesson.py and teacher link
Browse files- phase/Student_view/teacherlink.py +7 -15
- utils/api.py +1 -21
phase/Student_view/teacherlink.py
CHANGED
|
@@ -216,24 +216,16 @@ def show_code():
|
|
| 216 |
with c1:
|
| 217 |
# pass lesson & assignment to the Lessons page
|
| 218 |
if st.button("▶️ Start Lesson", key=f"start_lesson_{r.get('assignment_id')}"):
|
| 219 |
-
|
| 220 |
-
|
| 221 |
-
|
| 222 |
-
#
|
| 223 |
-
try:
|
| 224 |
-
_mark_assignment_started(student_id, assignment_id)
|
| 225 |
-
_set_assignment_progress(student_id, assignment_id, current_pos=1, progress=0.05)
|
| 226 |
-
except Exception as e:
|
| 227 |
-
st.warning(f"Could not mark as started yet. Continuing anyway. {e}")
|
| 228 |
-
|
| 229 |
-
# Route intent
|
| 230 |
-
st.session_state.selected_lesson = lesson_id
|
| 231 |
-
st.session_state.selected_assignment = assignment_id
|
| 232 |
st.session_state.lesson_route = {
|
| 233 |
"source": "teacher",
|
| 234 |
-
"lesson_id": lesson_id,
|
| 235 |
-
"assignment_id": assignment_id,
|
| 236 |
}
|
|
|
|
| 237 |
st.session_state.current_page = "Lessons"
|
| 238 |
st.rerun()
|
| 239 |
with c2:
|
|
|
|
| 216 |
with c1:
|
| 217 |
# pass lesson & assignment to the Lessons page
|
| 218 |
if st.button("▶️ Start Lesson", key=f"start_lesson_{r.get('assignment_id')}"):
|
| 219 |
+
st.session_state.selected_lesson = int(r.get("lesson_id")) # keep for backward compat
|
| 220 |
+
st.session_state.selected_assignment = int(r.get("assignment_id")) # keep for backward compat
|
| 221 |
+
|
| 222 |
+
# New explicit route hint. This is what fixes your navigation.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 223 |
st.session_state.lesson_route = {
|
| 224 |
"source": "teacher",
|
| 225 |
+
"lesson_id": int(r.get("lesson_id")),
|
| 226 |
+
"assignment_id": int(r.get("assignment_id") or 0),
|
| 227 |
}
|
| 228 |
+
|
| 229 |
st.session_state.current_page = "Lessons"
|
| 230 |
st.rerun()
|
| 231 |
with c2:
|
utils/api.py
CHANGED
|
@@ -318,14 +318,6 @@ def delete_lesson(lesson_id: int, teacher_id: int):
|
|
| 318 |
d = _req("DELETE", f"/lessons/{lesson_id}", json={"teacher_id": teacher_id}).json()
|
| 319 |
return bool(d.get("ok", True)), d.get("message", "")
|
| 320 |
|
| 321 |
-
def mark_assignment_started(student_id: int, assignment_id: int):
|
| 322 |
-
return _req("POST", f"/assignments/{assignment_id}/start").json()
|
| 323 |
-
|
| 324 |
-
def set_assignment_progress(student_id: int, assignment_id: int, current_pos: int, progress: float):
|
| 325 |
-
return _req("PATCH", f"/assignments/{assignment_id}/progress",
|
| 326 |
-
json={"current_pos": current_pos, "progress": progress}).json()
|
| 327 |
-
|
| 328 |
-
|
| 329 |
# Quizzes
|
| 330 |
def list_quizzes_by_teacher(teacher_id: int):
|
| 331 |
return _json_or_raise(_req("GET", f"/teachers/{teacher_id}/quizzes"))
|
|
@@ -665,16 +657,4 @@ def tutor_explain(lesson_id: int, level_slug: str, wrong: list[dict]):
|
|
| 665 |
"wrong": wrong
|
| 666 |
}, timeout=60)
|
| 667 |
r.raise_for_status()
|
| 668 |
-
return r.json()["feedback"]
|
| 669 |
-
|
| 670 |
-
@app.post("/assignments/{assignment_id}/start")
|
| 671 |
-
def start_assignment(assignment_id: int, student=Depends(auth_student)):
|
| 672 |
-
db.mark_assignment_started(student.id, assignment_id)
|
| 673 |
-
return {"ok": True}
|
| 674 |
-
|
| 675 |
-
@app.patch("/assignments/{assignment_id}/progress")
|
| 676 |
-
def update_progress(assignment_id: int, payload: dict, student=Depends(auth_student)):
|
| 677 |
-
db.set_assignment_progress(student.id, assignment_id,
|
| 678 |
-
payload.get("current_pos", 0),
|
| 679 |
-
payload.get("progress", 0.0))
|
| 680 |
-
return {"ok": True}
|
|
|
|
| 318 |
d = _req("DELETE", f"/lessons/{lesson_id}", json={"teacher_id": teacher_id}).json()
|
| 319 |
return bool(d.get("ok", True)), d.get("message", "")
|
| 320 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 321 |
# Quizzes
|
| 322 |
def list_quizzes_by_teacher(teacher_id: int):
|
| 323 |
return _json_or_raise(_req("GET", f"/teachers/{teacher_id}/quizzes"))
|
|
|
|
| 657 |
"wrong": wrong
|
| 658 |
}, timeout=60)
|
| 659 |
r.raise_for_status()
|
| 660 |
+
return r.json()["feedback"]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|