Que souhaitez-vous faire ?
RE : https://community.unix.com/
Nous venons de terminer la migration vers Discourse, mais nous laisserons nos anciens forums accessibles jusqu’en 2021, car nous disposons de deux décennies de code hérité dont chaque membre est fier (et pour lequel ils ont fourni beaucoup de travail).
Pour notre personnel qui souhaiterait vérifier périodiquement l’intégrité du code migré, nous aimerions un petit plugin permettant de séparer la valeur de topic_custom_fields et d’ajouter uniquement l’entier (qui correspond à l’identifiant du fil de discussion du forum hérité) au TopicViewSerializer, afin que le sérialiseur JSON inclue la paire clé-valeur supplémentaire :
"import_id" : <thread_id_of_legacy_forum>
Voyez la requête ci-dessous comme exemple, de sorte que la valeur ajoutée au TopicViewSerializer (pour cet identifiant de sujet Discourse) sera :
"import_id": 284071
postgres=# \c discourse
Vous êtes maintenant connecté à la base de données "discourse" en tant qu'utilisateur "postgres".
discourse=# select * from topic_custom_fields where name like '%import_id%' and topic_id = 377947;
id | topic_id | name | value | created_at | updated_at
--------+----------+-----------+---------------+----------------------------+----------------------------
239520 | 377947 | import_id | thread-284071 | 2020-04-22 03:20:03.968513 | 2020-04-22 03:20:03.968513
(1 row)
Nous souhaitons utiliser cette propriété dans un composant de modèle comme suit :
{{import_id}}
Car nous aimerions un petit composant de modèle <span> pour le plugin-outlet topic-category, qui ressemblerait à ceci (et ne sera visible que par notre niveau de confiance spécifié) :
<span class='import-id'>Fil du forum hérité <a class='import-id-link' href='https://www.unix.com/showthread.php?t={{import_id}}'>{{import_id}}</a></span>
Quand avez-vous besoin que ce soit fait ?
N’importe quand dans les prochaines semaines convient. Pas de grande urgence.
Quel est votre budget, en $ USD, que vous pouvez offrir pour cette tâche ?
Toutes les propositions raisonnables pour ce petit plugin sont les bienvenues.
Informations supplémentaires
Nous prévoyons de rendre ce code librement accessible à tous ceux qui ont effectué une migration similaire. Cependant, il est très possible que d’autres forums hérités n’aient pas une telle préoccupation concernant l’intégrité des données du code hérité, et il est donc possible que notre forum soit le seul à utiliser ce plugin.
J’ai rédigé hier une description de cette exigence « trop complexe » et donc peut-être « inexacte » ; je pense donc que la description ci-dessus est plus simple et plus facile à comprendre (j’espère) :
Note de bas de page
J’ai travaillé moi-même sur ce petit plugin pendant plusieurs jours, ma première tentative de création d’un plugin Discourse, et j’ai continué à obtenir une valeur null pour import_id dans le TopicViewSerializer.
Mise à jour
Grâce à un peu de gentillesse et de tutorat, je parviens maintenant à faire fonctionner la partie sérialiseur de cette tâche.

