Skip to main content
Помимо теории (контент-блоков), урок может содержать практику — набор заданий, которые студент выполняет и сдаёт. Практика описывается сущностью 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 и ждут ручного подтверждения куратором.