Kerikim commited on
Commit
57c732a
·
1 Parent(s): 8f2ffd9

elkay: lesson.py and teacher link

Browse files
Files changed (2) hide show
  1. phase/Student_view/teacherlink.py +22 -7
  2. utils/api.py +12 -0
phase/Student_view/teacherlink.py CHANGED
@@ -214,18 +214,33 @@ def show_code():
214
 
215
  c1, c2 = st.columns(2)
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:
 
214
 
215
  c1, c2 = st.columns(2)
216
  with c1:
 
217
  if st.button("▶️ Start Lesson", key=f"start_lesson_{r.get('assignment_id')}"):
218
+ lesson_id = int(r.get("lesson_id"))
219
+ assignment_id = int(r.get("assignment_id"))
220
+
221
+ # 1) Tell backend this assignment has started
222
+ try:
223
+ _mark_assignment_started(student_id, assignment_id)
224
+ # 2) Nudge a first position so the bar moves from 0%
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
+ # 3) Navigate
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
 
238
+ # Optional: clear any cached data so the updated status shows next render
239
+ try:
240
+ st.cache_data.clear()
241
+ except Exception:
242
+ pass
243
+
244
  st.session_state.current_page = "Lessons"
245
  st.rerun()
246
  with c2:
utils/api.py CHANGED
@@ -328,6 +328,18 @@ def create_quiz(lesson_id: int, title: str, items: list[dict], settings: dict):
328
  }).json()
329
  return d.get("quiz_id", d.get("id", d))
330
 
 
 
 
 
 
 
 
 
 
 
 
 
331
  # def get_quiz(quiz_id: int):
332
  # return _json_or_raise(_req("GET", f"/quizzes/{quiz_id}"))
333
 
 
328
  }).json()
329
  return d.get("quiz_id", d.get("id", d))
330
 
331
+ def mark_assignment_started(student_id: int, assignment_id: int):
332
+ return _req("POST", f"/assignments/{assignment_id}/start",
333
+ json={"student_id": student_id}).json()
334
+
335
+ def set_assignment_progress(student_id: int, assignment_id: int,
336
+ current_pos: int, progress: float):
337
+ return _req("PATCH", f"/assignments/{assignment_id}/progress",
338
+ json={"student_id": student_id,
339
+ "current_pos": current_pos,
340
+ "progress": progress}).json()
341
+
342
+
343
  # def get_quiz(quiz_id: int):
344
  # return _json_or_raise(_req("GET", f"/quizzes/{quiz_id}"))
345