Salut à tous,
J’essaie de créer une automatisation personnalisée qui, lorsqu’une requête est marquée comme solution/résolue, envoie un message privé (ou alternativement, crée une nouvelle réponse dans le fil avec un message prédéfini - dans les deux cas, ce serait un sondage) au créateur du sujet.
Il doit s’agir d’une automatisation personnalisée, car le script “envoyer des messages privés” disponible dans le plugin d’automatisation envoie les messages privés à la personne qui a envoyé la réponse marquée comme solution/résolue (et non à la personne qui a créé le sujet, comme prévu dans mon cas d’utilisation).
Ci-dessous se trouve le script que j’ai créé pour tenter de publier une nouvelle réponse dans le sujet une fois qu’une réponse est marquée comme solution (dans l’exemple suivant, je n’envoie pas le sondage comme réponse, je laisse simplement la liberté à l’administrateur de choisir ce qui sera renvoyé ou de le laisser par défaut) :
# frozen_string_literal: true
DiscourseAutomation::Scriptable.add(DiscourseAutomation::Scripts::REPLY_ON_SOLUTION) do
field :reply_text, component: :text
# field :answering_user, component: :user
field :once, component: :boolean
version 1
triggerables %i[:first_accepted_solution] if defined?(DiscourseSolved)
placeholder :sender_username
placeholder :word
script do |context, fields, automation|
topic = context["topic"]
# user = context["user"]
reply_text = fields.dig("reply_text", "value")
# Publier une réponse dans le sujet où une solution a été marquée
PostCreator.create!(
Discourse.system_user,
topic_id: topic.id,
raw: reply_text || "Une solution a été marquée pour ce sujet !",
)
end
end
Mais je ne suis pas sûr s’il faut utiliser PostCreator.create!, PostCreator.reply, ou peut-être autre chose. Ce qui m’amène à une question :
- Existe-t-il une documentation sur les mots-clés à utiliser lors de la création d’un script d’automatisation personnalisé ?
Sur la base de l’automatisation ci-dessus, une fois que je la déclenche en marquant une réponse comme solution, après 1 seconde, je reçois un message pop-up avec un message d’erreur “500 internal server error” à l’écran.
- Est-ce que je manque quelque chose ? Mon déploiement a été effectué à l’aide de devcontainers, sur ma machine locale à des fins de test de développement.
- Que faut-il faire, après la création du script personnalisé ? Peut-être que quelque chose me manque dans cette phase ? Ou peut-être est-ce un problème dans le script lui-même ?
- Existe-t-il une documentation sur les étapes à suivre après la création de votre script ? Par exemple : quels fichiers doivent être modifiés pour que tout fonctionne correctement ? (J’ai découvert à la dure qu’il fallait modifier le fichier
client.en.ymlpour que le nom et la description corrects s’affichent dans la liste des automatisations)
Je prévois de tenter, en me basant sur le script intégré “envoyer des messages privés”, de modifier mon script pour qu’au lieu de créer une réponse, il envoie des messages privés, mais je ne suis pas sûr de ce qui suit :
- comment puis-je identifier la personne qui a créé le sujet et non celle qui a marqué la réponse comme solution ?
Merci beaucoup d’avance pour tout conseil et aide.