Sujets liés (division et gestion des méga-sujets)

Je viens de fusionner une fonctionnalité qui crée automatiquement un nouveau sujet lié lorsqu’un sujet est automatiquement fermé en fonction du paramètre du site auto close topics post count.

Cette fonctionnalité est particulièrement utile pour diviser et gérer automatiquement les sujets géants.

Voici comment cela fonctionne

Supposons que le paramètre auto close topics post count soit défini sur 10000 messages et qu’un sujet (avec le titre « Présentez-vous ! ») ait atteint cette limite.

Nous fermerons alors ce sujet et créerons un nouveau sujet lié pour poursuivre la discussion. Le premier message du nouveau sujet contiendra un lien vers toutes les discussions précédentes (sujets).

Le titre du sujet original sera suivi de « Partie 1 » et celui du nouveau sujet de « Partie 2 ».

Les sujets suivants suivront une convention de nommage similaire.

Il y aura également un message de modérateur en bas du sujet automatiquement fermé indiquant qu’un nouveau sujet est disponible pour poursuivre la discussion.

Cette fonctionnalité est activée par défaut. Pour la désactiver, désactivez simplement le paramètre du site auto close topics create linked topic.

Notez que cette fonctionnalité sera désactivée si auto close topics post count est désactivé (défini sur 0).

33 « J'aime »

C’est génial !

Est-ce que cela pourrait être utilisé comme solution au « problème des 10 000 messages babillage » (Babble Chat - #206 by jrgong) ?

4 « J'aime »

J’ai une petite suggestion concernant ces lignes de code (et tout ce que j’aurais pu manquer) :

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

Je recommande de remplacer [titre](url) par simplement url, et de s’appuyer sur la fonctionnalité existante de Discourse qui affiche le titre du sujet à partir de l’URL. Si je ne me trompe pas, cela aurait l’avantage supplémentaire de mettre automatiquement à jour le titre du sujet affiché si celui-ci est renommé, ce qui serait, je pense, une belle touche.

6 « J'aime »

Oui, c’est une bonne idée @techAPJ, nous devrions probablement le faire.

De plus, pouvons-nous faire en sorte qu’il n’y ait qu’un seul message au lieu de deux ? Pourquoi ne pas intégrer la partie « continuer la discussion » dans le message de clôture ? Par exemple :

Ce sujet a été automatiquement fermé après avoir atteint la limite maximale de 10 000 réponses. Continuez cette discussion sur {link}

9 « J'aime »

Effectué via :

Bien sûr, effectué via :

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

11 « J'aime »

Cela ne fonctionnera pas aussi bien lorsque vous poursuivez la discussion d’un sujet à accès restreint vers une autre catégorie sans les mêmes restrictions d’accès exactes.

1 « J'aime »

Est-ce un cas d’usage probable ? Il semble que, généralement, le sujet en cours reste dans la même catégorie que le sujet original. Si cette situation se produit, vous dites que cela ne fonctionnera pas aussi bien, mais quel serait exactement le comportement ?

4 « J'aime »

Même sans le problème de lien, je m’attendrais à ce que le sujet continu hérite des mêmes restrictions d’accès exactes. Je considérerais cela comme un bug si ce n’était pas le cas.

4 « J'aime »

Bonne remarque — ce doit donc être bon !

3 « J'aime »

Bonjour, très belle fonctionnalité, mais deux problèmes :

  1. Comment modifier le texte « Partie » (1, 2, etc.) ? Sur les forums en anglais, cela passe probablement, mais nous aimerions pouvoir le changer.
  2. La catégorie du nouveau sujet. Nous venons d’obtenir notre premier sujet lié automatiquement et il était « non catégorisé ». Ce que nous souhaitons, c’est que le nouveau sujet hérite de la catégorie du sujet précédemment fermé automatiquement.
4 « J'aime »

Oui, ce sont de bons points, mais la dernière fois que j’ai vérifié, la catégorie était bien héritée, n’est-ce pas, @techAPJ ?

3 « J'aime »

Vous devrez mettre à jour la traduction pour ces clés. Voir : Contributing translations to Discourse

Il s’agit d’un bug valide. Je le corrigerai en priorité aujourd’hui.

Je pense que cela pourrait s’agir d’une mise à jour manuelle. Je ne vois pas de code pour attribuer une catégorie au sujet lié.

6 « J'aime »

Corrigé via :

9 « J'aime »

Je suis moi aussi très intéressé par cette question.

1 « J'aime »

@elijah souhaitiez-vous continuer votre conversation ici ? C’est, à mon avis, l’endroit le plus approprié pour cela.

3 « J'aime »

@elijah apparemment, tu veux que le statut de notification du sujet (surveillance, suivi, silencieux, etc.) pour chaque utilisateur du vieux sujet soit copié vers le nouveau sujet, c’est bien ça ?

Je comprends la logique, mais je crains que cela puisse être un peu intrusif pour certains utilisateurs… les sujets longs peuvent impliquer des centaines, voire des milliers de personnes. Quelqu’un d’autre a-t-il des avis là-dessus, avantages et inconvénients ?

4 « J'aime »

Oui, laissez-moi répéter mes suggestions ici, pour le contexte.

Pour les mégasujets, je proposais l’une des deux méthodes suivantes pour rendre la division plus fluide pour les utilisateurs moins réguliers.

Méthode Copie de la liste de surveillance : lors de la division d’un sujet, copiez le statut « muet », « suivi » ou « surveillance » vers le nouveau sujet. (Et si le dernier sujet avait seulement été copié, sans avoir été défini à l’origine : désactivez le statut de suivi pour celui qui est maintenant fermé.) Raison : Si l’utilisateur n’a pas lu le sujet depuis un moment, mais qu’il s’y intéresse généralement, aidez-le à rattraper son retard en ne mettant pas en évidence les messages non lus dans l’ancien sujet, mais uniquement dans le nouveau.

Méthode Division du haut : lors de la division d’un sujet, facilité le déplacement des messages 2 à N après le message 1 vers un nouveau sujet (fermé à la création), et remplacez ces messages déplacés par un message de lien vers le sujet. Raison : modifier les paramètres de surveillance est fastidieux. Cela permet d’archiver d’anciens contenus sans rompre les liens externes (favoris, flux RSS, intégrés dans une application, etc.) ni les paramètres de surveillance internes.

Je préfère la méthode de division du haut, mais les deux semblent être des moyens d’aider les utilisateurs intéressés par des sujets très longs (ou de longue durée mais divisés).

3 « J'aime »

J’utilise WP et Discourse pour l’éducation audio et la réflexion de groupe, et je me demandais à quel point il serait utile que, lorsque le plugin WP crée un nouveau sujet sur Discourse, un événement déclenche la création d’un sujet lié comme sujet de réflexion pour ce sujet principal. De cette façon, cela me permettrait de conserver le sujet original en lecture seule, afin que les gens ne voient pas les réflexions avant d’avoir écouté l’audio, et que le sujet lié soit l’endroit où ils vont pour réfléchir.

Similaire à ceci :

Ai-je raison de supposer qu’il suffirait de modifier légèrement ce code ici pour le faire fonctionner dans un nouveau plugin ?

      if SiteSetting.auto_close_topics_create_linked_topic?
        # mettre en file d'attente un travail pour créer un sujet lié
        Jobs.enqueue_in(5.seconds, :create_linked_topic, post_id: @post.id)
      end

De plus, je me demande s’il existe suffisamment d’applications pour la création automatique d’un sujet lié pour qu’il soit judicieux de l’inclure dans Discourse Automation ?

1 « J'aime »