Le 'watching first post' sur une étiquette ne fonctionne pas sur un sujet existant ?

Je pourrais jurer que cela fonctionnait lors de mes premiers tests, car c’est essentiel à mon flux de travail : je pouvais marquer un article existant, et les utilisateurs ayant watching_first_post sur cette étiquette recevraient une notification.

J’ai maintenant découvert que cela ne fonctionne pas de cette façon (…plus maintenant.. ?)

Ou peut-être est-ce ignoré lorsqu’il y a déjà des articles de réponse sous ce sujet ?

J’imagine que je pourrais déplacer les sujets vers une catégorie où tout le monde a le réglage ‘watching first post’, mais…

  1. Les notifications ne sont-elles déclenchées qu’à la création du sujet ?
  2. Je ne suis pas sûr si la présence d’articles de réponse ferait ignorer le déclencheur du ‘premier article’.
  3. Je voulais vraiment garder les sujets liés dans une seule catégorie, et en “escalader” certains via une étiquette.

Je suis prêt à exécuter un script pour lancer les notifications à chaque fois, mais Askbot :robot: n’a pas pu m’aider à en créer un qui fonctionne.

J’apprécierais toute suggestion ou solution de contournement… !

image

Mais comment cela fonctionnerait-il ? S’il y a 10 000 anciens sujets avec cette étiquette, êtes-vous immédiatement averti ?

“Ne suivre que le premier message” ne notifie que le tout premier message du sujet.

1 « J'aime »

C’est assez définitif, donc je dois mal me souvenir et j’avais créé des sujets de test avec le tag suivi présent.

Oh non, je ne suggère pas que le réglage d’un utilisateur sur ‘watch first post’ via un tag devrait avoir un effet rétroactif.

Mais il est sûrement courant que les sujets postés soient tagués plus tard par le personnel. J’avais juste imaginé que lorsqu’un tag ‘watch first post’ est appliqué à un sujet existant, il générerait une notification de ce sujet pour les utilisateurs qui suivent déjà le tag WFP.

Je travaille toujours avec Askbot pour trouver un script ad hoc pour ces occasions…

Après environ 60 itérations, Askbot et moi avons un script Rails qui fonctionne presque.

Le script ci-dessous – pour le sujet 239 et le tag ‘tagtest’ – génère les notifications “Nouveau sujet” attendues avec le bon titre de sujet, et génère les e-mails associés.

Certains éléments semblent inertes (message: et display_username: n’apparaissent dans aucune sortie) mais cela fonctionne presque.

Le point bloquant est que les e-mails n’arrivent pas avec le titre réel du sujet dans l’en-tête. Il apparaît comme " %{topic_title} ". topic_title n’est apparemment pas un champ valide pour la méthode Notification, donc je ne suis pas sûr du code minimum nécessaire pour l’inclure dans l’e-mail. (Askbot a essayé d’ajouter des méthodes d’e-mail de plus en plus élaborées, avec des erreurs de plus en plus nombreuses.)

Si quelqu’un pouvait aider avec ce détail, cela me permettrait de tenir le coup jusqu’à ce que j’apprenne à nettoyer cela correctement… !


topic_id = 239

Tag.where(name: 'tagtest').each do |tag|
  TagUser.where(tag_id: tag.id, notification_level: TagUser.notification_levels[:watching_first_post]).each do |tag_user|
    user = User.find(tag_user.user_id)
    puts "Username: #{user.username}, ID: #{user.id}"

    # Récupérer le titre du sujet
    topic = Topic.find(topic_id)
    topic_title = topic.title

    # Créer une notification pour le sujet
    Notification.create!(
      user_id: user.id,
      notification_type: Notification.types[:watching_first_post],
      topic_id: topic_id,
      post_number: 1, # On suppose que vous souhaitez notifier le premier message du sujet
      data: {
        message: 'Vous avez une nouvelle notification pour un sujet que vous suivez.',
        display_username: 'system'
      }.to_json
    )

  end
end

Au moment de l’étiquetage, cela comporte également des risques, par exemple, l’étiquetage en bloc de 500 sujets, puis il y a 500 notifications, adieu vos notifications.

Ou pire encore, 100 étiquettes par un administrateur à 10 secondes d’intervalle.

C’est un problème délicat, nous devrions enrouler très soigneusement les notifications pour modifier la fonctionnalité de cette manière.

N’est-ce pas la même chose si vous déplacez en masse des sujets vers une autre catégorie ? Le déplacement de sujets vers une autre catégorie déclenche les notifications de suivi du premier message.

Oui, je pense que la recatégorisation générale est beaucoup plus rare que le ré-étiquetage, donc l’ampleur du problème est quelque peu atténuée. Y a-t-il une chance que vous puissiez faire une capture d’écran rapide de ce qui se passe lorsque vous recatégorisez en masse 3 sujets en “watch-first” ?

Je ne rêverais pas d’étiqueter en masse 500 sujets, mais je me demande si cela causerait plus de contrainte que de publier dans une catégorie Annonces que tout le monde surveille ?
(Edit : Oups, Moin a posté pendant que je composais.)

Mon propre cas d’utilisation est peut-être un message par semaine pour « escalader » par e-mails de notification.

Cela ressemble à une discussion antérieure sur les sujets reclassés :
(Edit : que vous savez déjà, désolé.)

…ce qui a été abordé par FIX : Notification manquante pour les utilisateurs qui surveillent le premier message lors du reclassement d’un sujet · discourse/discourse@147ea37 · GitHub

Je vise simplement à utiliser une étiquette plutôt que d’avoir deux catégories pour des sujets similaires. (Ils appartiennent ensemble, mais quelques-uns sont, après publication, jugés dignes d’être envoyés à nos utilisateurs silencieux, parfois uniquement par e-mail.)

1 « J'aime »

Juste par curiosité/comparaison, je teste le comportement de ‘regarder le premier message dans la catégorie, et il ne notifie pas lors de la recatégorisation.

Ma fenêtre de temps d’e-mail en minutes est de 10, et je laisse 15 minutes entre les étapes.
Je l’ai répété plusieurs fois maintenant…

  • Créer un nouveau sujet dans une catégorie sandbox non surveillée. Attendre 15 minutes.
  • Déplacer le sujet dans une catégorie qu’un utilisateur surveille : déclenche des notifications immédiates, envoie un e-mail 10 minutes plus tard.

  • Créer un autre nouveau sujet dans une catégorie sandbox non surveillée. Attendre 15 minutes.
  • Déplacer le sujet dans une catégorie où un utilisateur ‘surveille le premier message’ : ne fait rien, jamais.

(Installation standard auto-hébergée, 3.4.0.beta2-dev (0c019b2e45), tests réussis.)

Peut-être est-ce quelque chose dans mon processus, mais je ne vois pas quoi. Est-il possible que la fonctionnalité qui a été triée en 2018 soit redevenue non triée ?

1 « J'aime »

C’est très possible, c’est un domaine particulièrement complexe de l’application.

La notification lors du ré-étiquetage / ré-catégorisation nécessite de nombreuses garde-fous.

  • Devrions-nous notifier sur un sujet vieux de 8 ans ?
  • Devrions-nous envoyer 50 notifications d’un coup ? Dans une période de 1 heure ?

Nous devons commencer par déterminer quel est le comportement souhaité et quels devraient être les garde-fous.

Pour information, l’ajout d’une étiquette à un sujet existant devrait envoyer une notification à toute personne qui suit le premier message pour cette étiquette.

Je viens de le tester sur mon site de test (3108e3a6b6) et cela semble toujours fonctionner correctement.

Juste pour vérifier, avez-vous modifié le paramètre d’administration disable tags edit notifications à un moment donné ? (Et disable category edit notifications pour la version par catégorie).

4 « J'aime »

O.
M.
G.
Je vais aller me cacher sous un rocher.

J’avais oublié que ces paramètres existaient. J’imagine que lorsque je les ai désactivés, je ne pensais qu’aux notifications comme « un administrateur a ajouté une balise ou modifié la catégorie de votre sujet » — pas aux actions comme les notifications Watch ou WFP.

Je pense qu’il peut encore y avoir des incohérences, car Watch d’une catégorie semblait outrepasser disable category edit modifications, tandis que WFP ne le faisait pas. En guise de pénitence, je vais tester cela plus en profondeur et faire un suivi avec quelques autres personnes que j’ai contactées à ce sujet.

(Aussi, @sam a un peu appuyé ma conclusion :sweat_smile:)

Mais merci @JammyDodger de m’avoir épargné des heures supplémentaires à bricoler des scripts rails. Ma prochaine étape aurait été de vendre mon canapé et de payer @pfaffman pour qu’il m’aide.

6 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.