Files
LMS/deploy/IMPORT.md
Vladislav Kopnin 09721747d1 Learn UI: prev/next navigation, sidebar outline, editing on every page; merge import; defense date
- article page: ← / → navigation across the whole material tree (including
  between sections), sticky sidebar outline with the current article highlighted
- editing on chapter, section and article pages: rename, publish/hide, delete,
  create section/article, move articles while deleting a section; forms return
  to the page they were opened from (validated internal `back` parameter)
- article page opens the edit dialog directly via ?edit=1 (used by "Править"
  links on section/chapter pages)
- import: optional sync flag — with it stale sections/articles of archived
  chapters are deleted (previous behaviour), without it import only adds and
  updates, so material edited in the UI is not overwritten
- student area: lab page and lab cards now show the defense date next to the
  submission deadline
- fix SpEL crash on the student lab page (`and` with nullable strings)
2026-09-17 17:14:16 +03:00

6.1 KiB
Raw Permalink Blame History

Порядок наполнения LMS данными (через интерфейс)

Всё делается в админке, порядок: администратор → группы и студенты → лабораторная → раздача вариантов → защита → материалы.

Шаг 1. Деплой

См. DEPLOY.md: Docker + nginx + HTTPS. После старта сервисов откройте домен — попадёте на /setup, создайте администратора (логин и пароль храните в секрете, в репозиторий их не писать).

Шаг 2. Группы и студенты

Группы → Импорт — загрузите .xls/.xlsx/.csv со списком группы (столбцы: «Студенческий номер», «Фамилия Имя Отчество», «Основа обучения»). Название группы берётся из файла или указывается при импорте. Логином студента становится студенческий номер, пароль генерируется (временный, с обязательной сменой при первом входе).

Дальше по каждому студенту при необходимости:

  • «Сбросить пароль» — выдать новый временный пароль;
  • «Добавить существующего» — перевести студента из другой группы;
  • «Отчислить из группы» — убрать из группы (аккаунт и данные сохраняются).

Выгрузить логины: «Логины XLSX» / «CSV».

Шаг 3. Лабораторная

Лабораторные → Импорт — ZIP со структурой:

lab.yaml          # номер, название, points_max, уровни (code/title), сроки, статус
README.md         # общее условие (markdown)
variants/01.md    # вариант: front-matter (level, number, title) + текст задания

Примеры — в личном рабочем каталоге (не в репозитории). После импорта на странице лабораторной:

  • «Настроить» — срок сдачи, дата защиты, максимум баллов, статус;
  • уровни/варианты можно править и добавлять прямо там же.

Шаг 4. Раздача вариантов

На странице лабораторной — «Распределить»: выбрать группы, при необходимости «пересоздать заново». Логика: случайная очередь по всем вариантам выбранного уровня; без повторов, пока в уровне есть невыданные варианты; закрепленные вручную не трогаются. Частично/точно — в списке назначений (уровень и вариант по каждому студенту) или массово чекбоксами.

Шаг 5. Оценки и защита

На странице группы (матрица):

  • «опубликовать оценки» — показать/скрыть оценки и комментарии студентам;
  • «поставить оценку» — балл + комментарии (позитивный/негативный/нейтральный);
  • раздел «Индивидуальные задания (защита)»: «Назначить задание» или импорт CSV (студент;ЛР;задание или студент;задание при выбранной ЛР), «выдать код», «изменить», «текст», после готовности — «доп. задание: начать заново».

Шаг 6. Учебные материалы

Лабораторные → материалы (/learn) доступны гостям. Для наполнения: создание глав/разделов/статей в админке или импорт ZIP со структурой:

chapters/01-глава/01-раздел/01-статья.md   # front-matter: title, slug
assets/                                     # картинки для md

Материалы видны всем; для редактирования — «Материалы» с правами администратора.

Импорт бывает в двух режимах: с галочкой «Удалять разделы и статьи, которых нет в архиве» (синхронизация — архив считается источником истины) и без неё (merge — только добавить и обновить, правки в приложении сохраняются). Для догрузки отдельных статей используйте merge.

Медиа в материалах: картинки и видео кладутся в assets/ архива и вставляются директивами :::figure assets/имя.png | Подпись и :::video assets/имя.mp4 | Подпись. Лимиты: картинки — до 10 МБ (png/jpg/jpeg/gif/svg/webp), видео — до 100 МБ (mp4/webm/ogg). Nginx и сервисы настроены на загрузку до 200 МБ; подробности — в docs/06-authoring.md.

Замечания

  • Данные в *.xls/PDF/PDF-пароли содержат персональные сведения — храните их во временном каталоге и не коммитьте в репозиторий.
  • Пароли студентов выдаются автоматически; временный пароль нужно менять при первом входе (до смены другие страницы недоступны).