8a7091ddec
Копия пользовательской автопамяти (29 фактов + индекс MEMORY.md) в .claude/memory/, чтобы переносить между машинами через git. README.md — как восстановить в пользовательскую папку на другой машине. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
25 lines
2.0 KiB
Markdown
25 lines
2.0 KiB
Markdown
---
|
|
name: reference_quick_lesson
|
|
description: «Быстрый урок» — одиночный урок без курса через скрытый личный курс-контейнер (is_personal)
|
|
metadata:
|
|
node_type: memory
|
|
type: reference
|
|
originSessionId: 60467058-b40e-4bd9-9f7f-d1e362e8039a
|
|
---
|
|
|
|
Одиночного урока без курса в системе нет: `lessons.course_id NOT NULL`, `POST /api/lessons`
|
|
требует courseId. Решено через **личный курс-контейнер** (сделано 2026-06-03, commit 6be8a50).
|
|
|
|
- Миграция 059: `courses.is_personal INTEGER DEFAULT 0` (ADD COLUMN).
|
|
- `POST /api/lessons/quick` (teacher/admin, `lessonController.quickLesson`): get-or-create
|
|
контейнер `WHERE created_by=? AND is_personal=1` (subject_slug='personal', title='Мои материалы',
|
|
is_published=1, один на учителя) → создаёт урок → `{lessonId, courseId}`.
|
|
- Фронт: кнопка «Быстрый урок» в каталоге `theory.html` (рядом с «Новый курс», видна
|
|
teacher/admin) → POST /quick → редирект `/lesson-editor.html?id=<lessonId>`.
|
|
- `courseController.list` СКРЫВАЕТ `is_personal=1` из каталога для всех, кроме владельца
|
|
(`AND (c.is_personal=0 OR c.created_by=?)`; студентам — всегда `is_personal=0`).
|
|
- Учитель видит свои быстрые уроки как курс «Мои материалы» (открыв его в каталоге).
|
|
- Доступ ученикам: контейнер опубликован, но урок надо ОПУБЛИКОВАТЬ (per-lesson) + доступ
|
|
к курсу-контейнеру идёт через обычный content_access/класс (см. [[project_content_access]]).
|
|
Standalone-урок на уровне схемы (course_id NULL) — НЕ делали (был выбран этот лёгкий путь).
|