Сегодня я снял с публикации и удалил некоторые темы из категории «Без категории», и теперь на главной странице со списком категорий для этой категории отображается «-11 всего».
Подумав об этом, я заметил, что большинство удалённых тем ранее были сняты с публикации. Интересно, имеет ли это значение — возможно, снятие с публикации и удаление по отдельности вычитают по 1 из подсчёта для каждой темы.
Восстановится ли это автоматически (со временем или при наступлении какого-либо события)?
Или мне нужно что-то сделать, чтобы исправить это?
Да, это именно проблема. Я могу воспроизвести её на своём тестовом сайте. Скрытие темы из списка удаляет её из статистики тем в категории. Если затем удалить скрытую тему, она снова вычитается из статистики тем категории. Это означает, что скрытие из списка, а затем удаление одной темы засчитывается как удаление двух тем из статистики.
Discourse запускает фоновую задачу CategoryStats один раз в 24 часа. Когда эта задача выполняется, статистика вашей категории должна исправиться. Если у вас есть доступ к rails-консоли вашего сайта и вы не хотите ждать выполнения задачи, вы можете запустить команду вручную:
Category.update_stats
Я протестировал это на своём собственном сайте. Выполнение этой команды устранило проблему.
Оказывается, чтобы воспроизвести проблему, нужно скрыть тему из списка, подождать примерно 24 часа, пока не выполнится задача по обновлению статистики категории, а затем удалить тему. Из-за этого тема будет удалена из статистики категории дважды. Ещё через 24 часа задача по обновлению статистики категории выполнится снова, и проблема должна быть решена.
Причина этого в том, что удаление темы немедленно убирает её из статистики категории. Скрытие темы из списка не приводит к её удалению из статистики до тех пор, пока не будет выполнена ежедневная задача по обновлению статистики категории — эта задача проверяет только видимые темы.