Comment ajouter des publications de sujet imbriquées sous des éléments de liste de sujets hébergés sur discourse.org ? c'est-à-dire Liste de sujets comme flux

Bonjour à tous,

Cette semaine, nous avons lancé notre premier sprint pour personnaliser notre thème Discourse. Nous savions que nous allions devoir modifier un nombre important de fichiers, car les designs diffèrent considérablement des thèmes Discourse.

Notre approche est très simple : essayer d’obtenir ce dont nous avons besoin uniquement avec SASS, et, si nécessaire, remplacer les fichiers .hbs/.hbr correspondants. Nous savons que cette dernière option introduit un risque supplémentaire de maintenance (si les attributs transmis à la vue sont renommés ou supprimés, nos modèles seront brisés). Nous avons pesé le risque que cela se produise par rapport à la nécessité de maintenir notre propre infrastructure et avons conclu que l’hébergement sur discourse.org apporte plus de valeur à notre client à but non lucratif. Nous allons ajouter du code de surveillance au site et mettre en place un plan de réponse pour le cas où cela se produirait. De plus, si cela arrive, nous pensons que la correction sera probablement simple.

Passons maintenant au cœur du sujet. Nous devons trouver comment transformer la vue de la liste des sujets en une expérience de type flux, c’est-à-dire que sous chaque sujet, les messages de réponse sont affichés comme des commentaires.

Voici une image de ce que nous devons construire (elle montre actuellement un seul commentaire par sujet ; nous devrons parfois en afficher plus).

Où en sommes-nous

@iainbamboo s’est donc plongé dans le sujet pour déterminer :

  1. Les données des messages sont-elles déjà disponibles dans la liste des sujets et devons-nous simplement modifier le modèle ? → Non, ce n’est pas le cas.
  2. Comment ajouter les données des messages de chaque sujet à la liste afin de les afficher dans le modèle ?
    1. Est-ce vraiment la bonne approche ?
    2. Devons-nous modifier le code Ruby pour les ajouter au modèle envoyé (éventuellement via un plugin) comme dans Discourse Timeline ? Si nous créons un plugin, pouvons-nous l’utiliser sur discourse.org ?
    3. Devons-nous récupérer les données depuis Ember et accepter le ralentissement des chargements dû à plusieurs requêtes AJAX vers le serveur pour obtenir les messages de chaque sujet (ce qui risque de déclencher des limites de taux) ?
    4. Peut-on faire cela sans modifier le code Ruby ?

Après avoir beaucoup cherché, lu les guides de développement de Discourse et examiné le code source, nous avons conclu que nous avions besoin de conseils d’experts sur la meilleure façon de procéder.

Et c’est maintenant que nous en sommes là :slight_smile:

Vous rencontreriez toutes sortes de problèmes de performance et de limites de taux en essayant de faire cela côté front-end dans un thème… peut-être que quelqu’un de plus familier avec le back-end pourra intervenir, mais je pense que vous aurez certainement besoin de créer un plugin.

8 « J'aime »