Lesson.order from the book (seed sets it, also re-syncs unit/node order); matrix lesson rows as one multi-line step

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-15 13:53:30 +03:30
parent 3f68abe741
commit 8a2bf26b16
6 changed files with 65 additions and 11 deletions

View File

@@ -156,11 +156,15 @@ class Lesson(models.Model):
mascot_animation = models.CharField(max_length=50, default='explain')
# جایگاهِ درس در جزیره (از ۱). ۱۰۰۰۰ برای درسی که ادمین ساخته و در فایلِ کتاب نیست: ته‌ِ جزیره می‌نشیند.
order = models.PositiveIntegerField(default=10000)
class Meta:
# بدونِ ORDER BY، Postgres سطرها را به ترتیبِ فیزیکی برمی‌گرداند و هر UPDATE (ویرایشِ ادمین،
# seed_content) آن را جابه‌جا می‌کند: درسِ اول یک جزیره عوض می‌شد (گزارشِ مالک ۲۰۲۶-۱۰-۱۵).
# seed درس‌ها را به ترتیبِ فایل می‌سازد، پس ترتیبِ id همان ترتیبِ کتاب است.
ordering = ['id']
# `order` جایگاهِ درس در کتاب است و seed_content آن را از فایل می‌گذارد؛ درسی که بعداً در وسطِ
# جزیره اضافه شده id بزرگ‌تر دارد ولی جایش وسط است. `id` فقط برای برابری است.
ordering = ['order', 'id']
def __str__(self):
return self.title