split cards

This commit is contained in:
2026-05-01 21:12:05 +02:00
parent 214dd0b6a6
commit 2b65876525
6 changed files with 171 additions and 25 deletions

View File

@@ -16,7 +16,14 @@ from .auth import (
verify_password,
)
from .curriculum import QUESTIONS
from .program_content import decode_asset_token, get_content_status, get_lesson, list_lessons_for_grade, normalize_grade
from .program_content import (
decode_asset_token,
get_content_status,
get_lesson,
list_lessons_for_grade,
normalize_grade,
render_svg_section,
)
from .services import (
build_llm_reply,
ensure_student_mastery,
@@ -214,6 +221,22 @@ def get_program_asset(
return FileResponse(path, media_type="image/svg+xml")
@app.get("/program/assets/{asset_token}/sections/{section_index}")
def get_program_asset_section(
asset_token: str,
section_index: int,
current_user: models.User = Depends(get_current_user),
):
try:
path = decode_asset_token(asset_token)
svg = render_svg_section(path, section_index)
except IndexError as exc:
raise HTTPException(status_code=404, detail="Étape introuvable") from exc
except Exception as exc:
raise HTTPException(status_code=400, detail="Ressource invalide") from exc
return Response(content=svg, media_type="image/svg+xml")
@app.get("/students/{student_id}/program", response_model=schemas.StudentProgramResponse)
def get_student_program(
student_id: int,