CourseLessonPracticeEntity и настраивается на
отдельной вкладке урока.
Где настраивается практика
Практика открывается по адресу/manage/course/:courseId/content/:lessonId/practice. Внутри есть
переключатель между двумя вкладками:
Параметры прохождения (порог сдачи, попытки, ограничение по времени, дедлайн, режим показа
результата) описаны в разделе Настройка урока и модуля.
Варианты и задания
Практика состоит из одного или нескольких вариантов (CourseLessonPracticeVariantEntity).
Каждый вариант — это независимый набор заданий. Внутри варианта задания упорядочены полем order,
и у каждого задания есть флаг обязательности (required).
- Если вариантов несколько, при повторной попытке студенту может выдаваться другой вариант — режим
задаётся настройкой
retryVariantMode(по очередиSequenceили случайноRandom). - Задания внутри варианта показываются либо списком (
List), либо по одному последовательно (Sequence).
Режим показа заданий «Последовательность» (
Sequence) в интерфейсе помечен как «Скоро» и пока
недоступен для выбора — практика показывает задания списком.Связь с базой заданий
Задания в практику добавляются через селектор заданий (TaskSelector). Каждое задание —
это сущность TaskEntity из общей базы заданий школы. Практика ссылается на задание через
промежуточную запись CourseLessonPracticeTaskEntity (вариант + задание + порядок + обязательность).
Добавить задание в вариант можно двумя путями:
1
Создать новое задание
Прямо в практике создаётся задание нужного типа (тест, открытый ответ, файл и т.д.). При
создании выбирается тип ответа (
TaskAnswerType) — полный список см. в разделе
Типы заданий.2
Взять готовое из базы
Задание можно склонировать из шаблонов базы заданий (
createManyFromTemplate,
clonePracticeTask). Так одно и то же задание переиспользуется в разных уроках и курсах —
в базе оно помечается как шаблон (isTemplate).Генерация заданий через AI
На вкладке «Задания» доступен инструмент AI-генерации практики: по содержанию урока предлагаются задания, которые затем проходят проверку и подтверждение прямо на странице перед добавлением в вариант. Сгенерированные, но ещё не принятые задания представлены типомGeneratedAiTask и ждут ручного подтверждения куратором.