На моём сайте есть тема, которую кто-то (назовём его X) опубликовал, а затем удалил из-за ошибочной информации. Я восстановил её и попросил X добавить исправление под своим оригинальным постом.
С тех пор тему постоянно удаляют. Я уже дважды её восстановил, и всё выглядело нормально, но через некоторое время она снова появляется как удалённая.
Возможно, пользователь, о котором идёт речь, постоянно удаляет это? У меня были пользователи, которые предпочитали удалять посты, чем терпеть «смущение» от необходимости исправлять себя.
Проверьте журнал (admin/logs/staff_action_logs), чтобы увидеть, удаляет ли их пользователь. В журнале будут отображены сообщения, которые были как отредактированы, так и удалены… а также кем они были удалены. Вы также можете нажать на значок информации для получения дополнительной информации.
Некоторые пользователи передумали сохранять сообщения по этой и многим другим причинам. Иногда это просто ситуация, когда человек считает, что лучше забыть то, что он собирался сказать. Иногда приходится принять их причину, даже если она не была озвучена.
Пользователи не могут мгновенно удалять темы или сообщения. Всё, что они могут сделать, — это инициировать удаление через 24 часа. Это будет публичным намерением, указанным в теме или сообщении, например:
(сообщение отозвано автором, будет удалено через 24 часа, если не будет отмечено)
Кроме того, это можно сделать для тем только в том случае, если у них нет ответов и теме не более 1 дня.
У нас тоже это происходит, когда тему удаляет система, то есть через 24 часа после удаления поста автором вернуть его невозможно; даже если мы восстановим её, она автоматически удаляется снова через 30 минут.
Я поговорил с пользователем и, насколько я понимаю, он не удаляет это постоянно. На самом деле он был удивлён этим, так как именно он первым сообщил мне об этой проблеме.
Есть какие-нибудь идеи? Могу ли я предоставить дополнительные данные для помощи в устранении проблемы? Похоже, что @Pad_Pors мог столкнуться с чем-то подобным.
Хм. Не совсем уверен, что полностью понимаю, что происходит на шаге 1, но если исходить из того, что суть в том, что пользователь создал тему, то шаг 2, похоже, невозможен. Если я создаю тему как обычный пользователь, отвечаю на неё, а затем пытаюсь удалить свой первый пост (пост темы), то этот пост не будет помечен на удаление — это сделано намеренно.
Похоже, что у сотрудников нет кнопки «восстановить» на теме обычного пользователя, когда она запланирована к удалению. Только автор оригинального сообщения может восстановить пост в течение периода ожидания. Когда вы говорите, что восстановили это, вы имеете в виду после автоматического удаления?
Пользователь удаляет пост в теме, планируя удаление (я изменил настройку сайта delete_removed_posts_after на 1)
Тема удаляется по истечении указанного времени
Сотрудник восстанавливает тему и возвращает исходную версию поста (только восстановление вернет пост обратно с сообщением «Тема отозвана автором, будет автоматически удалена через 1 час, если не будет помечена»)
Тема будет удалена снова через некоторое время
Что происходит: Когда пользователь удаляет свой собственный пост в теме, устанавливается свойство user_deleted со значением true. Фоновая задача DestroyOldDeletionStubs запускается каждые 30 минут. Эта задача выполняет функцию PostDestroyer.destroy_stubs, которая ищет в базе данных и удаляет любые посты, у которых user_deleted установлен в true и истек «таймер удаления».
Проблема: Когда сотрудник восстанавливает пост, user_deleted никогда не устанавливается в false, поэтому при следующем запуске DestroyOldDeletionStubs пост будет удален снова.