Subjects per grade (math, calculus, geometry, stats, discrete), 5 new textbooks, 202 new islands, long islands split, hand-written figures and lesson texts for the new books

- content.Subject + Unit.subject, /api/home?subject=, tutor grounded in the chosen book
- 5 new books ingested; ~1150 hand-written questions, islands named by hand
- node_split: islands over 7 lessons split into parts of <=6 (lesson ids and progress kept)
- Lesson.figures hand-authored and visually checked for 653 lessons of the new books;
  gen_lesson_figures got --subject and survives network errors
- seed files re-exported

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-12 05:35:18 +03:30
parent 3d51b3b83a
commit 8cb1ecb85e
32 changed files with 81218 additions and 4486 deletions

View File

@@ -125,7 +125,7 @@ class Command(BaseCommand):
parser.add_argument('--judge', default=DEFAULT_JUDGE)
parser.add_argument('--per-grade', type=int, default=6)
parser.add_argument('--collections', nargs='*', default=None,
help='پیش‌فرض: همه‌ی کتاب‌های ریاضی/حسابان')
help='پیش‌فرض: همه‌ی کتاب‌های ریاضی/حسابان/هندسه/آمار/گسسته')
parser.add_argument('--seed', default='bench-v1')
parser.add_argument('--workers', type=int, default=4)
parser.add_argument('--no-context', action='store_true',
@@ -149,7 +149,7 @@ class Command(BaseCommand):
if collections:
qs = qs.filter(collection__in=collections)
else:
qs = qs.filter(collection__regex=r'^(ریاضی|حسابان) ')
qs = qs.filter(collection__regex=r'^(ریاضی|حسابان|هندسه|آمار و احتمال|گسسته) ')
by_collection = defaultdict(list)
for chunk in qs.only('id', 'problem', 'checked_answer', 'collection', 'grade_title',
'subject', 'chapter'):