Seed: grade 3 rebuilt (every lesson 5+ questions, wrong figures/lesson text fixed), Persian digits and plain fractions across all grades, apply_fixups gains lesson/question_set, ledger save chunked for SQLite

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-16 21:27:22 +03:30
parent 5fbbd371fe
commit f57deb9c1d
9 changed files with 35779 additions and 11725 deletions

View File

@@ -57,7 +57,11 @@ class _Ledger:
self.write[key] = (kind, value)
def save(self) -> None:
existing = set(SeedRecord.objects.filter(key__in=list(self.write)).values_list('key', flat=True))
# دسته‌دسته: SQLite بیش از ۳۲٬۷۶۶ متغیر در یک پرس‌وجو نمی‌پذیرد و دفترِ یک seedِ تازه از آن بیشتر است.
keys = list(self.write)
existing = set()
for i in range(0, len(keys), 500):
existing.update(SeedRecord.objects.filter(key__in=keys[i:i + 500]).values_list('key', flat=True))
SeedRecord.objects.bulk_create([
SeedRecord(key=k, kind=kind, value=value)
for k, (kind, value) in self.write.items() if k not in existing