Se creó una revisión anual en mi foro. El tema fue renombrado y, dado que el plugin de revisión anual verifica nombres de título idénticos para saber si debe crear una nueva revisión anual, creó otra 24 horas después.
Eliminé la nueva y renombré la primera con el título predeterminado.
Pero el plugin sigue creando temas nuevos después de 24 horas.
Esto es lo que devuelve el explorador de datos:
SELECT created_at, title, fancy_title
FROM topics
WHERE title like '%2022%année en cours de révision%'
AND deleted_at IS NULL
ORDER BY created_at DESC
created_at
title
fancy_title
2023-01-04T14:52:19.345Z
2022 : l'année en cours de révision
2022 : l’année en cours de révision
2023-01-01T10:09:20.503Z
2022 : l'année en cours de révision
2022 : l’année en cours de révision
En realidad creó temas nuevos 3 veces, quizás debido a una diferencia entre una comilla y una comilla elegante[1] en el título, por lo que tuve que hacerlo, de ahí la diferencia de 3 días en la fecha y los 2 resultados, pero me gustaría conservar solo el primero creado.
¿Alguna idea de por qué el plugin continúa creando temas a pesar de tener uno existente con el título predeterminado y cómo evitar que lo haga? ¿Qué pasaría si lo desactivo y lo vuelvo a activar al final de 2023? ¿Creará un tema 24 horas después de que lo reactive?
Además, esa no sería la solución más elegante, así que me gustaría saber dónde está exactamente el problema
Desactivaré el plugin durante los próximos días/semanas hasta que se identifique el problema y se eviten las nuevas creaciones de revisiones anuales.
¡Hola!
Soy el coadministrador. Solo he cambiado el nombre. No he cambiado el autor.
¿Qué pasa si hay 2 temas con el mismo nombre y el usuario del sistema como autor? ¿Tomaría el último?
Acabamos de cambiar el título del primer tema de revisión anual y luego lo volvimos a cambiar al valor predeterminado más de 24 horas después de su creación.
No cambiamos yearly_review.topic_title.
Si el título del tema coincide exactamente con el título que se estableció cuando el tema se publicó inicialmente, se debería evitar la publicación de nuevos temas de revisión con esta línea:
return if Topic.where(user: Discourse.system_user, title: title).exists?
A menos que la causa del problema sea que el título no coincide exactamente, tal vez el problema esté relacionado con que el tema se publique en francés. Sería genial saber qué se está estableciendo como title aquí cuando se ejecuta el trabajo:
title = I18n.t("yearly_review.topic_title", year: review_year)
Me pregunto si está intentando comparar el título en inglés con el título en francés. ¿Es el francés el idioma predeterminado en su sitio?
Editar: si el tema se está publicando con un título en francés, entonces title en el código anterior debe establecerse en francés. Por lo tanto, es poco probable que esa sea la causa del problema.
Son idénticos, a menos que me haya perdido una pequeña diferencia en los dos temas que Data Explorer devolvió. Puedo proporcionar más datos si es necesario.
¿Debo ejecutar eso en la consola de Rails o en otro lugar?
Sí, lo es.
Volveré a habilitar el plugin para verificar nuevamente si puedo recopilar más información sobre la próxima revisión anual creada (si la hay).
Yo también. No estoy seguro de lo que está pasando, pero parece que esta verificación de un tema existente es un poco inestable:
return if Topic.where(user: Discourse.system_user, title: title).exists?
Me pregunto si alguien del equipo de Discourse tiene ideas sobre cómo mejorarla.
Tener que deshabilitar el plugin para evitar que se creen varios temas no es un buen enfoque. El plugin carga algo de CSS que se utiliza para estilizar sus temas. Si el plugin está deshabilitado, no creo que el CSS se cargue.
Solo una nota: el plugin se actualizó con la nueva traducción al francés, por lo que creó otra revisión anual nueva
He copiado el título de este nuevo tema, lo he eliminado y he renombrado el original pegando el título.
Veremos si crea un nuevo tema mañana a pesar de mi copia y pega del título en bruto.
Gracias por dar seguimiento a esto. Confiar en el título del tema para evitar la creación de múltiples temas de revisión es un enfoque muy inestable (eso es culpa mía). Una vez que termine enero, el problema no volverá a surgir hasta el próximo año. @JammyDodger, tal vez podrías pasarle una nota al equipo de Discourse para que investiguen cómo encontrar una mejor manera de evitar la creación de múltiples temas. Eso debería hacerse antes de enero de 2024. El tiempo vuela