Temas vinculados (división y gestión de megatemas)

Acabo de fusionar una característica que crea automáticamente un nuevo tema vinculado cuando un tema se cierra automáticamente en función de la configuración del sitio auto close topics post count.

Esta característica es especialmente útil para dividir y gestionar automáticamente los megatemas.

Así funciona

Digamos que la configuración auto close topics post count está establecida en 10000 publicaciones y un tema (con el título “¡Preséntate!”) acaba de alcanzar ese límite.

Ahora cerraremos ese tema y crearemos un nuevo tema vinculado para continuar la discusión. La primera publicación del nuevo tema enlazarán a todas las discusiones anteriores (temas).

El título del tema original se completará con “Parte 1” y el título del nuevo tema se completará con “Parte 2”.

Los temas subsiguientes seguirán una convención de nombrado de títulos similar.

También habrá una publicación de moderador al final del tema cerrado automáticamente que indique que hay un nuevo tema disponible para continuar la discusión.

Esta característica está habilitada de forma predeterminada. Para deshabilitar la característica, simplemente deshabilita la configuración del sitio auto close topics create linked topic.

Ten en cuenta que esta característica se deshabilitará si auto close topics post count está deshabilitado (establecido en 0).

33 Me gusta

¡Eso es increíble!

¿Podría usarse como solución al “problema de 10.000 mensajes de babble”?

4 Me gusta

Tengo una pequeña sugerencia respecto a estas líneas de código (y cualquier otra cosa que haya pasado por alto):

previous_topics += "- [#{topic.title}](#{topic.url})\n"
parent_topic.add_moderator_post(system_user, I18n.t('create_linked_topic.moderator_post_raw', new_title: "[#{new_topic_title}](#{new_topic.url})"))

Recomendaría reemplazar [título](url) por solo url, y confiar en la funcionalidad existente de Discourse que muestra el título del tema a partir de la URL. Si no estoy equivocado, esto tendría el beneficio de actualizar automáticamente el título del tema mostrado si el tema es renombrado, lo cual creo que sería un buen detalle.

6 Me gusta

Sí, es una buena idea @techAPJ, probablemente deberíamos hacerlo.

Además, ¿podemos hacer que haya un solo mensaje en lugar de dos? ¿Por qué no integrar la parte de “continuar la discusión” en el mensaje de cierre? Algo así:

Este tema se cerró automáticamente al alcanzar el límite máximo de 10000 respuestas. Continúa esta discusión en {link}

9 Me gusta

Hecho mediante:

Claro, hecho mediante:

https://github.com/discourse/discourse/commit/436bd4851297d9b7c0bc1f18601da60ad09508b9

11 Me gusta

Esto no funcionará tan bien cuando continúas la discusión desde un tema con acceso restringido hacia otra categoría sin las mismas restricciones de acceso exactas.

1 me gusta

¿Es ese un caso de uso probable? Parece que, en general, el tema continuo se mantendría en la misma categoría que el tema original. Si esta situación llega a ocurrir, dices que no funcionará tan bien, pero ¿cuál sería específicamente el comportamiento?

4 Me gusta

Incluso sin el problema de enlace, esperaría que el tema continuado heredara las mismas restricciones de acceso exactas. Lo vería como un error si no lo hiciera.

4 Me gusta

Buen punto, entonces probablemente esté bien.

3 Me gusta

¡Hola, muy buena función, pero hay dos problemas:

  1. ¿Cómo cambiamos el texto de “Parte” (1, 2, etc.)? En los foros en inglés probablemente esté bien, pero nos gustaría poder cambiarlo.
  2. La categoría del nuevo tema. Acabamos de recibir nuestro primer tema enlazado automáticamente y estaba “sin categoría”. Lo que queremos es que el nuevo tema asuma la categoría del tema previamente cerrado automáticamente.
4 Me gusta

Sí, son buenos puntos, pero la última vez que lo verifiqué, la categoría se heredaba correctamente, ¿es así @techAPJ?

3 Me gusta

Deberás actualizar la traducción de estas claves. Consulta: Contributing translations to Discourse

Ese es un error válido. Lo corregiré con prioridad hoy.

Creo que eso podría haber sido una actualización manual. No veo código para asignar la categoría al tema enlazado.

6 Me gusta

Solucionado mediante:

9 Me gusta

También estoy muy interesado en esta pregunta.

1 me gusta

@elijah ¿deseabas continuar tu conversación aquí? Creo que este es el lugar más adecuado para ello.

3 Me gusta

@elijah Aparentemente, quieres que el estado de notificación del tema (vigilando, siguiendo, silenciado, etc.) de cada usuario en el tema antiguo se copie al nuevo tema, ¿verdad?

Entiendo la lógica, pero me preocupa que pueda resultar un poco invasivo para algunos usuarios… los temas largos pueden involucrar a cientos o miles de personas. ¿Alguien más tiene opiniones al respecto, ventajas y desventajas?

4 Me gusta

Sí, déjame repetir mis sugerencias aquí, para dar contexto.

En los megatemas, proponía cualquiera de dos formas de hacer que la división sea más fluida para el usuario menos habitual.

Método Copiar lista de seguimiento: al dividir un tema, copiar el estado de silenciado/seguimiento/vigilancia al nuevo tema. (Y si el último tema solo tenía copiado, no establecido originalmente allí: desactivar el estado de seguimiento del ahora cerrado.) Racional: Si el usuario no ha estado para leer el tema durante un tiempo, pero está generalmente interesado en él, ayúdale a ponerse al día sin resaltar los mensajes no leídos en el tema antiguo, solo en el nuevo.

Método División superior: al dividir un tema, facilitar que los mensajes del 2 al N (después del primero) se muevan y se copien en un nuevo tema (cerrado al crearse), y reemplazar esos mensajes movidos con un mensaje de tema enlazado. Racional: Manipular la configuración de seguimiento es complicado. Esto permite archivar contenido antiguo sin romper enlaces externos (marcadores, RSS, integrados en una aplicación, etc.) ni la configuración interna de seguimiento.

Me gusta más el método de división superior, pero cualquiera parece una forma de ayudar a los usuarios interesados en temas muy largos (o de largo plazo pero divididos).

3 Me gusta

Estoy usando WP y Discourse para hacer educación auditiva y reflexión grupal, y estaba pensando en lo útil que sería si, cuando el plugin de WP crea un nuevo tema en Discourse, un evento activara la creación de un tema enlazado como tema de reflexión para ese tema principal. De esa manera, me permitiría mantener el tema original como de solo lectura, para que la gente no vea las reflexiones antes de escuchar el audio, y que el tema enlazado sea donde vayan a reflexionar.

Similar a esto:

¿Asumo correctamente que solo se necesitaría un pequeño ajuste en este código aquí para hacerlo posible en un nuevo plugin?

      if SiteSetting.auto_close_topics_create_linked_topic?
        # encolar un trabajo para crear un tema enlazado
        Jobs.enqueue_in(5.seconds, :create_linked_topic, post_id: @post.id)
      end

Además, me pregunto si hay suficientes aplicaciones para crear automáticamente un tema enlazado como para que tenga sentido incluirlo en Discourse Automation?

1 me gusta