Мои проекты

Commentail 1.3.2: исправление комментариев в переводах

Commentail 1.3.2 исправляет ошибку версии 1.3.1: обсуждения переведённых страниц Wagtail могли стать недоступны. Проверка теперь учитывает деревья переводов главной страницы сайта.

Коротко

  • При включённой интернационализации учитываются деревья переводов главной страницы Site.
  • Исправление действует для форм, защищённых ссылок, писем и последних комментариев; закрытые страницы остаются закрытыми.
  • После 1.3.1 новой миграции нет. При переходе с 1.3.0 и более ранних версий подготовка к миграции 0018 остаётся обязательной.
Синяя птица Commentail на облачке комментария, версия 1.3.2.
Commentail 1.3.2 — комментарии для Wagtail.

Выпустил Commentail 1.3.2 с исправлением ошибки предыдущего обновления. В 1.3.1 я усилил проверку принадлежности страницы сайту, но не учёл расположение переводов главной страницы в Wagtail. Из-за этого обсуждения корректных переводов могли стать недоступны.

Почему исчезали обсуждения

У Site в Wagtail задана корневая страница. При WAGTAIL_I18N_ENABLED=True её переводы могут начинать соседние деревья: например, русская и английская главные находятся рядом, а статьи каждой локализации — внутри своего дерева.

Проверка в 1.3.1 принимала только дерево настроенной корневой страницы. Английская статья под переводом главной оказывалась вне него, хотя Wagtail обслуживал её как часть того же сайта. Commentail отказывал в доступе к такому обсуждению. Переносить комментарии или создавать их заново для исправления не требуется.

Что учитывает новая проверка

В 1.3.2 при включённой интернационализации разрешены также деревья, которые начинаются с переводов главной страницы этого Site. Проверка применяется одинаково к виджету, формам и отправке комментариев, защищённым гостевым ссылкам, почтовой очереди и выборке последних комментариев.

При этом проверяется сама целевая страница в её языковом дереве: она должна быть опубликована, а ограничения просмотра, в том числе унаследованные от родителей, должны разрешать доступ. Наличие перевода отдельной статьи где-то за пределами разрешённых деревьев не открывает это дерево целиком.

Чужие деревья, страницы, перенесённые за их пределы, и защищённые ссылки другого Site по-прежнему отклоняются. Если интернационализация выключена, принимается только настроенное корневое дерево.

Обновление с 1.3.1

По сравнению с 1.3.1 в этом патче нет новой миграции Commentail, изменений зависимостей или шаблонов. Сохраните резервную копию сайта и установите пакет в его окружении:

bash
python -m pip install commentail==1.3.2
python manage.py migrate
python manage.py check
python manage.py collectstatic --noinput

После этого перезапустите приложение и фоновые процессы. Проверьте существующие обсуждения во всех языках, новую отправку, защищённые гостевые ссылки и почту в очереди. Отдельно убедитесь, что закрытые страницы сохранили ограничения доступа.

Письма, задания которых 1.3.1 успела отменить, автоматически в очередь не возвращаются. Их состояние нужно проверить отдельно, прежде чем решать, требуется ли замена. Восстановление доступа к обсуждению само по себе такое письмо не отправляет.

Переход с 1.3.0 и более ранних версий

Если 1.3.1 ещё не устанавливалась, нельзя пропустить её требования к обновлению. Миграция 0018_private_fingerprints остаётся необратимой и выполняется при переходе на 1.3.2. Нужны остановленные веб-процессы и фоновые обработчики записи, прежний SECRET_KEY и согласованная резервная копия базы, ключа и пакета.

Сначала отрепетируйте переход на восстановленной базе. Для возврата к версии до этой миграции понадобится восстановление соответствующей копии; одной переустановки пакета недостаточно. Полный порядок приведён в заметках к 1.3.1.

За nginx проверьте настройку TRUSTED_PROXIES: Commentail должен получать настоящий IP посетителя через доверенный прокси, иначе разные читатели могут делить общие квоты. Пример и проверка заголовков есть в руководстве по развёртыванию.

Проверки исправления

Добавил 13 регрессионных проверок: переводы главной и дочерние страницы, виджет на странице сайта, отправка от зарегистрированного пользователя, гостевые ссылки и письма, унаследованные ограничения, отключённая интернационализация, неопубликованные и перемещённые страницы, изоляция сайтов.

Подробности исправления и обновления доступны в заметках к релизу. Общий обзор библиотеки — на странице Commentail.

Была ли статья полезна?

Комментарии 0

Имя: до 40 символов.

После отправки мы пришлём письмо со ссылкой для подтверждения email.

Не более 5000 символов.

Опубликованных комментариев пока нет.