Чек-лист: размещение контента (политика и правила) и проверка
Портал: https://lms.cdto.life
Контент: Политика конфиденциальности, Правила использования портала (курс «Академия CDTO Права и обязанности», блок на главной)
Дата: 2026-02-13
Используйте этот чек-лист при каждом размещении или обновлении разрешительных/уведомительных документов на lms.cdto.life. Содержит подготовку, размещение, автоматическую и ручную проверку.
Блок A. Подготовка контента
| № |
Действие |
Статус |
Примечание |
| A.1 |
Открыть исходники в репозитории |
☐ |
docs/setup/portal-policies/privacy-policy.md, terms-of-use.md |
| A.2 |
Подставить реквизиты оператора (наименование, контакты) |
☐ |
В политике конфиденциальности, п. 1 и 5 |
| A.3 |
Проставить актуальные даты размещения |
☐ |
В конце обоих файлов |
| A.4 |
Согласовать тексты с юристом (AI Denkart Юрист) |
☐ |
При первом размещении и при существенных правках |
| A.5 |
Согласовать с владельцем продукта (CDTO) при необходимости |
☐ |
Формулировки, ссылки на контакты |
| A.6 |
Сохранить изменения в репозитории (git add, commit) |
☐ |
Чтобы публикация брала актуальные версии |
Блок B. Предусловия перед размещением
| № |
Действие |
Статус |
Проверка |
| B.1 |
Контейнер Moodle запущен |
☐ |
lxc list \| grep moodle — статус RUNNING |
| B.2 |
Доступ к lms.cdto.life с хоста (для проверки) |
☐ |
curl -sI https://lms.cdto.life \| head -1 — 200 или 301/302 |
| B.3 |
На хосте установлен python3-markdown (для публикации) |
☐ |
python3 -c "import markdown" — без ошибки |
| B.4 |
Опционально: в config/secrets заданы MOODLE_ADMIN_USER, MOODLE_ADMIN_PASSWORD |
☐ |
Для автоматической проверки с авторизацией |
Блок C. Размещение контента
Вариант 1 — одной командой (рекомендуется):
| № |
Действие |
Статус |
Команда / результат |
| C.1 |
Запустить полную настройку (курс + страницы + блок + проверка) |
☐ |
cd /home/cdto/DENKART && ./scripts/setup-portal-policies-and-frontpage-block.sh |
| C.2 |
При повторном размещении только страниц (курс и блок уже есть) |
☐ |
./scripts/publish-portal-policies-to-moodle.sh --update |
| C.3 |
Убедиться, что скрипт завершился без ошибок |
☐ |
Код выхода 0; в выводе нет [FAIL] |
Вариант 2 — по шагам:
| № |
Действие |
Статус |
Команда |
| C.4 |
Создать курс «Академия CDTO Права и обязанности» (если ещё нет) |
☐ |
lxc exec moodle -- sudo -u www-data php /tmp/moodle-create-course-prava.php --moodle-dir=/var/www/moodle (скрипт предварительно скопировать в контейнер) |
| C.5 |
Опубликовать страницы в курс |
☐ |
./scripts/publish-portal-policies-to-moodle.sh или ... --update |
| C.6 |
Добавить блок на главную (если ещё нет) |
☐ |
lxc exec moodle -- sudo -u www-data php /tmp/moodle-add-frontpage-block-prava-links.php --moodle-dir=/var/www/moodle |
Блок D. Автоматическая проверка размещения
| № |
Действие |
Статус |
Критерий успеха |
| D.1 |
Запустить проверку (если не вызывалась в конце C.1) |
☐ |
./scripts/verify-portal-policies-placement.sh |
| D.2 |
Главная страница: HTTP 200 |
☐ |
В выводе: [OK] HTTP 200 |
| D.3 |
Главная: в ответе есть фразы блока/ссылок |
☐ |
«Права и обязанности» или «Политика конфиденциальности» / «правила использования» (или [WARN], если контент только после входа) |
| D.4 |
Курс: HTTP 200 |
☐ |
В выводе: [OK] HTTP 200 для course/view.php?id=... |
| D.5 |
Курс: в ответе есть страницы политики/правил |
☐ |
«Политика конфиденциальности» или «Правила использования портала» (или [WARN] при необходимости входа) |
| D.6 |
Проверка с авторизацией (если заданы MOODLE_ADMIN_*) |
☐ |
Опционально: в разделе 3 вывода — «Главная: блок/ссылки найдены», «Курс: страницы … найдены» |
| D.7 |
Итог проверки: «Базовые проверки пройдены», код выхода 0 |
☐ |
При [FAIL] — устранить причину и повторить размещение/проверку |
| D.8 |
Проверка соответствия контента (исходники vs опубликованные страницы) |
☐ |
./scripts/verify-portal-policies-placement.sh (п. 4 в выводе) или отдельно: python3 scripts/verify-portal-policies-content-match.py https://lms.cdto.life COURSE_ID (требуются MOODLE_ADMIN_* в config/secrets) |
| D.9 |
Контент соответствует: схожесть по отчёту ≥ порога, код выхода 0 |
☐ |
При [ОТЛИЧИЕ] — перейти к блоку F |
Блок E. Ручная (визуальная) проверка в браузере
| № |
Действие |
Статус |
Что проверить |
| E.1 |
Открыть главную страницу |
☐ |
https://lms.cdto.life |
| E.2 |
На главной виден блок «Права и обязанности» (или аналог) |
☐ |
Ссылка на курс или на страницы политики/правил |
| E.3 |
Перейти по ссылке из блока |
☐ |
Открывается курс «Академия CDTO Права и обязанности» или страница политики/правил |
| E.4 |
В курсе отображаются две страницы |
☐ |
«Политика конфиденциальности портала AI Академия CDTO (lms.cdto.life)» и «Правила использования портала …» |
| E.5 |
Тексты страниц соответствуют утверждённым шаблонам |
☐ |
Реквизиты, даты, формулировки без ошибок |
| E.6 |
Проверить отображение без входа (гость) |
☐ |
При включённом гостевом доступе к курсу — контент виден гостю |
| E.7 |
При необходимости — проверить на мобильном виде |
☐ |
Блок и страницы читаемы с телефона/узкого экрана |
Блок F. Проверка соответствия контента и действия при отличиях
Эталон — исходники в репозитории. При отличиях исправления вносятся на странице в Moodle с учётом рекомендаций сотрудников проектной команды (либо в исходник с последующей перепубликацией — по решению команды). Рекомендации сотрудников фиксируются в комментарии к коммиту. При правках учитывать маркетинговые требования к продвижению контента и SEO-оптимизацию.
| № |
Действие |
Статус |
Критерий / ответственный |
| F.0 |
Запустить проверку соответствия (исходники ↔ Moodle) |
☐ |
./scripts/verify-portal-policies-placement.sh (при заданных MOODLE_ADMIN_* выполняется п. 4) или python3 scripts/verify-portal-policies-content-match.py https://lms.cdto.life COURSE_ID |
| F.1 |
Если в отчёте [ОТЛИЧИЕ]: зафиксировать, какие страницы отличаются |
☐ |
По выводу скрипта (privacy-policy.md и/или terms-of-use.md) |
| F.2 |
Провести сравнительный анализ: источник отличий (исходник устарел / публикация не обновлена / правки только в Moodle) |
☐ |
Менеджер — координация; Аналитик или Разработчик — сравнение текстов, определение эталона |
| F.3 |
Привести в соответствие силами команды с учётом маркетинга и SEO |
☐ |
См. таблицу ниже по ролям; рекомендации — в комментарий к коммиту |
| F.4 |
Исходник — эталон. После сверки исправления вносятся на странице (в Moodle) с учётом рекомендаций; затем повторная проверка |
☐ |
До достижения «контент соответствует» (код 0). При необходимости — перепубликация из исходников после правок в репо. Рекомендации сотрудников — в комментарии к коммиту |
| F.5 |
Учтены маркетинговые требования к продвижению контента и SEO-оптимизация |
☐ |
Заголовки, мета-описания, ключевые фразы; при необходимости — docs по SEO (moodle-seo-and-indexing.md и др.) |
Приведение в соответствие по ролям (команда проекта):
| Ситуация |
Действие |
Роль |
| Эталон — исходники в репо; на Moodle устаревшая версия |
Перепубликовать страницы из docs/setup/portal-policies/ |
Разработчик или Аналитик: ./scripts/publish-portal-policies-to-moodle.sh --update |
| Эталон — исходники; в них опечатки или устаревшие формулировки |
Править privacy-policy.md / terms-of-use.md, согласовать с юристом при необходимости, затем перепубликовать |
Аналитик — правки; AI Denkart Юрист — согласование формулировок; Разработчик — публикация |
| Правки вносились только в Moodle, исходников не обновляли |
Привести исходники в репо в соответствие с опубликованным текстом (или перепубликовать из репо, если эталон — репо) |
Аналитик — обновление .md; Менеджер — решение, что считать эталоном |
| Расхождение по юридическим формулировкам |
Согласовать текст с юристом, обновить исходник и Moodle |
AI Denkart Юрист — формулировки; Аналитик — правки в репо; Разработчик — публикация |
Блок G. Фиксация и сопровождение
| № |
Действие |
Статус |
Ответственный |
| G.1 |
Зафиксировать в документации дату размещения/обновления |
☐ |
Аналитик / исполнитель |
| G.2 |
При изменении текстов — обновить даты в docs/setup/portal-policies/*.md |
☐ |
Исполнитель |
| G.3 |
Периодическая проверка актуальности (законодательство, условия сторонних продуктов) |
☐ |
AI Denkart Юрист |
| G.4 |
При отказе от плагинов (например Brickfield) — обновить политику конфиденциальности и документацию |
☐ |
Юрист, Аналитик |
Краткая шпаргалка команд
# Полный цикл (курс + страницы + блок + проверка)
./scripts/setup-portal-policies-and-frontpage-block.sh
# Только публикация страниц (обновление)
./scripts/publish-portal-policies-to-moodle.sh --update
# Проверка размещения (включая соответствие контента при заданных MOODLE_ADMIN_*)
./scripts/verify-portal-policies-placement.sh
./scripts/verify-portal-policies-placement.sh --no-auth # без входа и без проверки контента
# Только проверка соответствия контента (исходники vs Moodle)
python3 scripts/verify-portal-policies-content-match.py https://lms.cdto.life COURSE_ID
Связанные документы
Чек-лист можно распечатать или копировать в задачу Redmine (проект «Разрешительная документация»).
Технический директор: AI Denkart
Владелец ресурсов: CDTO Dkvark