Я хотел бы добавить дополнительную опцию в меню действий по теме (значок гаечного ключа). А именно: возможность изменить статус темы на «На рассмотрении» (назовём её, например, «Перевести в статус На рассмотрении»).Основной сценарий использования — когда тема содержит контент, вызывающий вопросы по той или иной причине, и требуется немного больше времени, чтобы решить, как лучше с ним поступить. Нажатие на гаечный ключ и перевод статуса в «На рассмотрении» кажется наиболее эффективным решением, но, конечно, я открыт для других предложений.
Я не совсем понимаю. Почему бы не установить таймер закладки на первом сообщении?
Его цель — скрыть некоторые темы/посты, как если бы они были перехвачены триггером отслеживаемых слов. Он хочет, чтобы посты не были видны пользователям, но попадали в очередь на проверку для дальнейшей обработки (например, для связи с пользователем по поводу поста и объяснения, почему он неуместен).
Погодите, речь идёт о постах, которые уже находятся в очереди на проверку? Или о том, чтобы принудительно поместить существующие посты в очередь на проверку?
Интересная идея…
Принудительное добавление существующих публикаций в очередь на модерацию.
@pfaffman Верно.
@codinghorror Что-то ещё, что я могу предложить?
Я думаю, это хорошая идея, хотя не представляю, насколько сложно это реализовать с технической точки зрения. Что ты думаешь, @sam?
Если ответов нет, думаю, это не составит большого труда… @eviltrout или @Roman, вероятно, точно знают, насколько это будет сложно.
Я думаю, что как только мы перенесем это в статус «ожидание», нам, возможно, придется жестко удалить тему и переместить её в другую таблицу.
Думаю, любой пост должен сработать, тема — это немного особый случай. Просто представьте, что в этом посте было нецензурное слово. Измените его и отправьте в очередь на модерацию?
Да, любой отдельный пост должен быть относительно простым (порядок может нарушиться, но, возможно, это сработает), тогда как всё усложняется, когда нужно обработать целую тему с ответами.
Не уверен, насколько это востребовано? Судя по сообщению автора темы (OP), это актуально.
Джейн создаёт тему: «Мне нравится есть зефир»
Джим отвечает: «Разве вы не знаете… этот сайт посвящён „не зефиру“»
Сайт посвящён конфетам, но администраторы сайта не любят зефир. Сейчас 5 утра… они не могут этим заняться.
Нажимаем кнопку… и возвращаем тему Джейн в очередь на одобрение. Разберёмся с этим завтра.
Проблема в том… как нам с этим справиться? Что происходит с временными метками при повторной публикации и так далее. Очередь модерации не поддерживает обработку нескольких постов единым блоком.
Я бы сказал, что текущий «поддерживаемый способ» решения этой проблемы таков:
- «Сделать скрытым»
- Отметить для внимания модератора, чтобы никто не забыл об этом
Недостаток в том, что люди всё ещё могут увидеть пост, если у них есть ссылка.
Другой вариант: «удалить», затем пометить удалённый контент (не уверен, поддерживает ли очередь модерации это, но, возможно, разумно разрешить модераторам помечать удалённый контент).
Да, большая разница в том, что постановка темы в очередь до её создания гораздо проще, чем после.
Тем не менее, у нас есть поддержка скрытия тем до тех пор, пока они не будут обработаны в очереди. @Roman сможет оценить это, когда вернется на следующей неделе.
@ked, это работает для тебя? Ты пробовал вышеуказанное? ![]()
Да, я пробовал и понимаю. Это не идеально, но, полагаю, приемлемо, учитывая другие ограничения и связанные проблемы, обсуждаемые выше.
Мой основной сценарий использования — когда создаётся и отображается тема, которую я бы предпочёл отловить через функцию «Следящие слова». Чаще всего я замечаю их в течение, скажем, часа, и у них ещё часто нет первого ответа. Приемлемая идея могла бы заключаться в том, чтобы в меню гаечного ключа для тем, у которых ещё нет первого ответа, была доступна опция «Перевести в статус ожидающих»? Просто мысль.
В любом случае, если ничего нового по этому вопросу не появится, я буду использовать процедуру «Сделать невидимой».
Спасибо за внимание к этому вопросу.
Извините за задержку. Я довольно много об этом думал.
Перевод поста в статус «на рассмотрении» означает его полное удаление и сохранение всех необходимых данных для его воссоздания внутри атрибута payload объекта reviewable. Мне пришлось переписать этот код несколько раз, так как я опасался потери данных в процессе перехода из-за ассоциаций с пометкой dependent: :destroy или dependent: :delete_all. Однако после некоторых тестов я считаю, что это должно быть безопасно.
Реализация этого для темы без ответов или когда речь не идёт о первом посте потребует небольших или умеренных усилий. Вся логика постановки поста в очередь находится в методе NewPostManager#enqueue, поэтому нам нужно будет вынести её в отдельный класс и переиспользовать. Мы всегда добавляем ожидающие одобрения посты в конец темы после утверждения, поэтому добавление их в определённую позицию потребует немного больше работы.
Возврат темы с ответами в статус «на рассмотрении» с использованием этого подхода должен быть более сложным. Сериализация её в объект reviewable кажется излишней. Возможно, мы могли бы временно скрыть тему? Например, мы уже делаем это, когда пост помечается как спам доверенным пользователем.
В качестве альтернативы мы могли бы всегда помечать и удалять (или скрывать) посты, что значительно упростило бы всё. Я не могу придумать причину, по которой полное удаление и постановка поста в очередь были бы лучше.
Я забыл опубликовать обновление здесь. Мы добавили кнопку «Пожаловаться на пост» в модальном окне жалоб, рядом с кнопкой «Принять меры…». При нажатии на пост он отправляется в очередь и скрывается, после чего пользователю отправляется сообщение с уведомлением о том, что он останется в таком состоянии до тех пор, пока его не проверит сотрудник.
Спасибо @Roman
