Tópicos vinculados (divisão e gerenciamento de megatópicos)

Acabei de fundir um recurso que cria automaticamente um novo tópico vinculado quando um tópico é fechado automaticamente com base na configuração do site auto close topics post count.

Esse recurso é especialmente útil para dividir e gerenciar automaticamente megatópicos.

Como funciona

Digamos que a configuração auto close topics post count esteja definida para 10000 postagens e um tópico (com o título “Apresente-se!”) tenha acabado de atingir esse limite.

Agora, fecharemos esse tópico e criaremos um novo tópico vinculado para continuar a discussão. A primeira postagem do novo tópico conterá links para todas as discussões anteriores (tópicos).

O título do tópico original será acrescido de “Parte 1” e o título do novo tópico será acrescido de “Parte 2”.

Os tópicos subsequentes seguirão uma convenção de nomenclatura semelhante.

Haverá também uma postagem de moderador no final do tópico fechado automaticamente, indicando que há um novo tópico disponível para continuar a discussão.

Esse recurso está ativado por padrão. Para desativá-lo, basta desativar a configuração do site auto close topics create linked topic.

Observe que esse recurso será desativado se auto close topics post count estiver desativado (definido como 0).

33 curtidas

Isso é incrível!

Isso poderia ser usado como solução para o “problema de 10.000 mensagens babble”?

4 curtidas

Tenho uma pequena sugestão sobre essas linhas de código (e qualquer outra coisa que eu tenha deixado passar):

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})"))

Recomendo substituir [título](url) por apenas url, confiando na funcionalidade existente do Discourse que exibe o título do tópico a partir da URL. Se não me engano, isso teria o bônus de atualizar automaticamente o título do tópico exibido caso o tópico seja renomeado, o que acho que seria um toque legal.

6 curtidas

Sim, essa é uma boa ideia, @techAPJ. Provavelmente devemos fazer isso.

Além disso, podemos fazer com que haja uma única mensagem em vez de duas? Por que não editar a parte “continuar discussão” na mensagem de fechamento? Algo assim:

Este tópico foi fechado automaticamente após atingir o limite máximo de 10.000 respostas. Continue esta discussão em {link}

9 curtidas

Feito por meio de:

Claro, feito por meio de:

11 curtidas

Isso não funcionará tão bem quando você estiver continuando a discussão de um tópico com restrição de acesso em outra categoria sem as mesmas restrições de acesso.

1 curtida

Esse é um caso de uso provável? Parece que, em geral, o tópico contínuo permaneceria na mesma categoria do tópico original. Se essa situação ocorrer, você diz que não funcionará tão bem, mas qual seria especificamente o comportamento?

4 curtidas

Mesmo sem o problema de link, eu esperaria que o tópico continuado herdasse as mesmas restrições de acesso. Eu consideraria isso um bug se não fosse o caso.

4 curtidas

Bom ponto — provavelmente está tudo bem, então!

3 curtidas

Olá, recurso muito legal, mas temos dois problemas:

  1. Como alteramos o texto “Parte” (1, 2 e assim por diante)? Em fóruns em inglês, provavelmente está tudo bem, mas gostaríamos de poder alterá-lo.
  2. A categoria do novo tópico. Acabamos de receber nosso primeiro tópico vinculado automaticamente e ele estava “sem categoria”. O que gostaríamos é que o novo tópico assumisse a categoria do tópico anterior que foi automaticamente fechado.
4 curtidas

Sim, são pontos válidos, mas da última vez que verifiquei, a categoria foi herdada corretamente. É isso mesmo, @techAPJ?

3 curtidas

Você precisará atualizar a tradução para essas chaves. Veja: Contributing translations to Discourse

Isso é um bug válido. Vou corrigir isso com prioridade hoje.

Acredito que isso tenha sido uma atualização manual. Não vejo código para atribuir categoria ao tópico vinculado.

6 curtidas

Corrigido via:

9 curtidas

[quote=“jrgong, post:2, topic:168992”]
Essa [funcionalidade] poderia ser usada como solução para o “problema de babble com 10.000 mensagens”?[/quote]

Eu também tenho muito interesse nessa questão.

1 curtida

@elijah você gostaria de continuar sua conversa aqui? Este é um lugar mais adequado para isso, na minha opinião.

3 curtidas

@elijah aparentemente você quer que o status de notificação do tópico (assistindo, acompanhando, silenciado, etc.) de cada usuário no tópico antigo seja copiado para o novo tópico, certo?

Entendo a lógica, mas minha preocupação é que isso possa ser um pouco invasivo para alguns usuários… tópicos longos podem envolver centenas ou milhares de pessoas. Alguém mais tem opiniões sobre isso, prós e contras?

4 curtidas

Sim, deixe-me repetir minhas sugestões aqui, para contexto.

Em megatópicos, eu estava propondo uma de duas maneiras de tornar a divisão mais fluida para usuários menos frequentes.

Método Copiar Lista de Acompanhamento: ao dividir um tópico, copiar o status de silenciado/acompanhamento/observação para o novo tópico. (E se o último tópico tivesse apenas copiado, não definido originalmente ali: desmarcar o status de acompanhamento para o agora fechado.) Racional: Se o usuário não esteve por aqui para ler o tópico há algum tempo, mas está geralmente interessado nele, ajudá-lo a se atualizar, não destacando as mensagens não lidas no tópico antigo, apenas no novo.

Método Divisão Superior: ao dividir um tópico, facilitar a movimentação das mensagens 2 a N, após a mensagem 1, para um novo tópico (fechado na criação), e substituir essas mensagens movidas por uma mensagem de tópico vinculado. Racional: mexer nas configurações de acompanhamento é complicado. Isso permite arquivar conteúdo antigo sem quebrar links externos (favoritos, RSS, incorporados em um aplicativo, etc.) ou configurações internas de acompanhamento.

Eu prefiro o método de divisão superior, mas qualquer um parece uma forma de ajudar usuários interessados em tópicos muito longos (ou de longo prazo, mas divididos).

3 curtidas

Estou usando WP e Discourse para fazer educação em áudio e reflexão em grupo, e estava pensando o quão útil seria se, quando o plugin WP criasse um novo tópico no Discourse, um evento acionasse a criação de um tópico vinculado como tópico de reflexão para esse tópico principal. Dessa forma, isso me permitiria manter o tópico original como somente leitura, para que as pessoas não vejam as reflexões antes de ouvirem o áudio, e ter o tópico vinculado como o local para onde elas iriam para refletir.

Semelhante a isto:

Estou correto em assumir que pode ser apenas um pequeno ajuste neste código aqui para que aconteça em um novo plugin?

      if SiteSetting.auto_close_topics_create_linked_topic?
        # enfileira um trabalho para criar um tópico vinculado
        Jobs.enqueue_in(5.seconds, :create_linked_topic, post_id: @post.id)
      end

Além disso, estou curioso se existem aplicações suficientes para a criação automática de um tópico vinculado onde faria sentido tê-lo como parte do Discourse Automation?

1 curtida