Me gustaría añadir una opción adicional dentro del menú de acciones del tema representado por la llave inglesa. En concreto, la opción para cambiar el estado del tema a Pendiente (digamos, Marcar como Pendiente).
El caso de uso principal sería cuando un tema contiene contenido cuestionable por cualquier motivo y se necesita reflexionar un poco más sobre cómo tratarlo de la mejor manera. Hacer clic en la llave inglesa y cambiar su estado a Pendiente parece el método más eficiente, pero, por supuesto, estoy abierto a otras ideas.
Lo que quiere es ocultar algunos temas/publicaciones como si hubieran sido detectados por el disparador de palabras vigiladas. Desea que la publicación no sea visible para los usuarios, sino que pase a la cola de revisión para su posterior gestión (por ejemplo, contactar al usuario sobre la publicación y explicar por qué es inapropiada).
Espera, ¿estamos hablando de publicaciones que ya están en la cola de revisión? ¿O de forzar que las publicaciones existentes pasen a la cola de revisión?
Creo que cualquier publicación debería funcionar; el tema es un caso un poco especial… solo imagina que esta publicación contiene una palabra malsonante. ¿La manipulas y la obligas a entrar en la cola de revisión?
Sí, cualquier publicación individual debería ser relativamente sencilla (la secuencia se desordenará, pero podría funcionar), lo que se vuelve muy complicado es intentar manejar un tema completo que ya tenga respuestas.
No estoy seguro de qué tan útil sea este caso de uso. Al parecer, sí lo es, según el autor original.
Jane crea un tema: Me gusta comer malvaviscos
Jim responde: ¿No lo sabes? Este sitio es sobre “no malvaviscos”
El sitio trata sobre dulces, pero los administradores no gustan de los malvaviscos; son las 5 a. m. y no pueden lidiar con esto.
Hacer clic en el botón … volver a la cola de aprobación del tema de Jane. Podremos ocuparnos de esto mañana.
El problema es … ¿cómo lo manejamos? ¿Qué sucede con las marcas de tiempo cuando republicamos y cosas así? La cola de revisión no admite múltiples publicaciones en un solo lote.
Diría que la forma “aprobada” actual de manejar esto es:
“Hacerlo no listado”
Marcar para atención del moderador para que nadie lo olvide
La desventaja es que la gente aún puede verlo si tiene la URL.
Otra opción podría ser: “dar clic en eliminar”, marcar el contenido eliminado (no estoy seguro de si la cola de revisión lo admite, pero quizás sea razonable permitir que los moderadores marquen contenido eliminado)
Sí, lo he intentado y lo entiendo. No es lo ideal, pero supongo que es viable, dadas las otras restricciones o problemas relacionados que se discuten más arriba.
Mi caso de uso principal es cuando se crea y muestra un tema, y preferiría que fuera detectado por la función de Palabras vigiladas. Generalmente observo estos temas dentro de, digamos, una hora, y a menudo aún no tienen una primera respuesta. Una idea viable podría ser tener una opción «Poner en espera» disponible en la llave inglesa solo para aquellos temas que aún no tienen una primera respuesta. Solo una idea.
De todos modos, usaré el procedimiento de Hacer no listado si no se desarrolla nada más al respecto.
Disculpa la demora. He estado pensando bastante en esto.
Hacer que una publicación quede pendiente implica eliminarla permanentemente y almacenar todos los datos necesarios para recrearla dentro del atributo payload del elemento revisable. Tuve que reescribir esto un par de veces porque me preocupaba perder datos durante esta transición debido a asociaciones marcadas con dependent: :destroy o dependent: :delete_all. Sin embargo, después de algunas pruebas, creo que debería ser seguro hacerlo.
Hacer esto cuando un tema no tiene respuestas o cuando no es la primera publicación debería requerir un esfuerzo bajo a moderado. Toda la lógica para poner una publicación en cola está dentro del método NewPostManager#enqueue, así que tendremos que extraerla a una clase separada y reutilizarla. Siempre agregamos las publicaciones pendientes al final del tema después de la aprobación, por lo que agregarlas en una posición específica requerirá un poco más de trabajo.
Mover un tema con respuestas de nuevo a pendiente debería ser más complicado con este enfoque. Serializarlo en un elemento revisable parece un poco excesivo. ¿Quizás podríamos ocultar el tema temporalmente en su lugar? Por ejemplo, ya hacemos esto cuando una publicación es marcada como spam por un usuario de confianza.
Alternativamente, podríamos siempre marcar como spam y eliminar (u ocultar) en su lugar, lo que haría todo mucho más fácil. No puedo pensar en ninguna razón por la que eliminar permanentemente y poner la publicación en cola sea mejor.
Olvidé publicar una actualización aquí. Agregamos un botón Marcar publicación en el modal de reporte, junto a Tomar acción.... Al hacer clic en la publicación, esta se envía a la cola y se oculta, luego se envía un mensaje al usuario para informarle que permanecerá así hasta que un miembro del personal la revise.