Lesson.figures: fixed diagrams per lesson (stored once, served with the lesson); gen_lesson_figures; 3 calculus-12 lessons

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-07 16:26:10 +03:30
parent 1d7eb829e2
commit ce629e32e4
9 changed files with 399 additions and 3 deletions

View File

@@ -95,6 +95,7 @@ def parse(raw: bytes) -> list[dict]:
'intro_text': (lesson.get('introText') or ''),
'example': str(lesson.get('example') or ''),
'steps': [str(x) for x in (lesson.get('steps') or []) if str(x).strip()][:12],
'figures': lesson.get('figures') or [],
}
for li, lesson in enumerate(lessons)
],
@@ -170,6 +171,9 @@ def import_curriculum(grades: list[dict]) -> dict:
if lesson_row.get('steps') and not lesson.steps:
lesson.steps = lesson_row['steps']
changed.append('steps')
if lesson_row.get('figures') and not lesson.figures:
lesson.figures = lesson_row['figures']
changed.append('figures')
if changed:
lesson.save(update_fields=changed)
if not created:
@@ -200,6 +204,7 @@ def export_curriculum(grades_queryset) -> dict:
'title': lesson.title, 'introText': lesson.intro_text,
**({'example': lesson.example} if lesson.example else {}),
**({'steps': lesson.steps} if lesson.steps else {}),
**({'figures': lesson.figures} if lesson.figures else {}),
}
for lesson in node.lessons.all()
],