Juro que esto funcionaba en mis primeras pruebas, ya que es clave para mi flujo de trabajo: podía etiquetar una publicación existente y los usuarios con watching_first_post en esa etiqueta recibirían una notificación.
Ahora he descubierto que no funciona de esta manera (…¿ya no…?)
¿O tal vez se ignora cuando ya existen publicaciones de respuesta en ese tema?
Me imagino que podría mover temas a una categoría donde todos tengan ‘watching first post’, pero…
¿Las notificaciones solo se activan en la creación del tema?
No estoy seguro de si la presencia de publicaciones de respuesta haría que se ignorara el disparador de la ‘primera publicación’.
Realmente quería mantener temas relacionados en una categoría y “escalar” algunos mediante etiquetas.
Estoy dispuesto a ejecutar un script para iniciar las notificaciones cada vez, pero Askbot no pudo ayudarme a crear uno que funcione.
Agradecería cualquier aporte o solución alternativa…
Eso es bastante definitivo, así que debo estar recordando mal y haber creado temas de prueba con la etiqueta rastreada presente.
Oh no, no sugiero que establecer a un usuario en ‘watch first post’ a través de una etiqueta deba hacer algo retroactivo.
Pero seguramente es común que el personal etiquete temas publicados más tarde. Simplemente me había imaginado que cuando se aplica una etiqueta ‘watch first post’ a un tema existente, generaría una notificación de ese tema para los usuarios que ya están WFP-ing la etiqueta.
Todavía estoy trabajando con Askbot para crear un script ad-hoc para estas ocasiones…
Después de unas 60 iteraciones, Askbot y yo tenemos un script de Rails casi funcionando.
El script a continuación, para el tema 239 y la etiqueta ‘tagtest’, genera las notificaciones esperadas de “Nuevo Tema” con el título del tema correcto y genera correos electrónicos relacionados.
Algunos elementos parecen inertes (message: y display_username: no aparecen en ninguna salida), pero casi funciona.
El obstáculo es que los correos electrónicos no llegan con el título real del tema en el encabezado. Llega como " %{topic_title} ". Aparentemente, topic_title no es un campo válido para el método Notification, por lo que no estoy seguro de cuál es el código mínimo necesario para incluirlo en el correo electrónico. (Askbot intentó agregar métodos de correo electrónico cada vez más elaborados, con errores cada vez mayores).
Si alguien pudiera ayudar con ese detalle, me mantendría a flote hasta que aprenda a limpiar esto adecuadamente…
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}"
# Fetch the topic title
topic = Topic.find(topic_id)
topic_title = topic.title
# Create a notification for the topic
Notification.create!(
user_id: user.id,
notification_type: Notification.types[:watching_first_post],
topic_id: topic_id,
post_number: 1, # Assuming you want to notify about the first post of the topic
data: {
message: 'You have a new notification for a topic you are watching.',
display_username: 'system'
}.to_json
)
end
end
En el momento de etiquetar también conlleva riesgos, por ejemplo, el etiquetado masivo de 500 temas, lo que genera 500 notificaciones, adiós a tus notificaciones.
O aún peor, 100 etiquetas de un administrador a intervalos de 10 segundos.
Es un problema complicado, tendríamos que agrupar las notificaciones con mucho cuidado para modificar la función de esta manera.
Sí, creo que, en general, la recategorización es mucho menos frecuente que el reetiquetado, por lo que la escala del problema se ve algo mitigada. ¿Hay alguna posibilidad de que puedas hacer una captura de pantalla rápida de lo que sucede cuando recategorizas masivamente 3 temas a “vigilar primero”?
No soñaría con etiquetar masivamente 500 temas, pero me pregunto, ¿causaría más tensión que publicar en una categoría de Anuncios que todos observan? (Edición: Oops, Moin publicó mientras componía.)
Mi propio caso de uso es quizás una publicación por semana para “escalar” a través de correos electrónicos de notificación.
Se siente similar a la discusión anterior sobre temas recategorizados: (Edición: que ya sabes, lo siento.)
Solo pretendo usar una etiqueta en lugar de tener dos categorías para temas similares. (Pertenecen juntos, pero algunos, después de publicarlos, se consideran dignos de enviar a nuestros usuarios silenciosos, a veces solo por correo electrónico).
Para que conste, añadir una etiqueta a un tema existente debería enviar una notificación a cualquiera que esté “Viendo la primera publicación” para esa etiqueta.
Lo he probado en mi sitio de prueba (3108e3a6b6) y todavía parece funcionar correctamente.
Solo para comprobar, ¿cambiaste la configuración de administrador disable tags edit notifications en algún momento? (Y disable category edit notifications para la versión de categoría).
O.\n\nM.\n\nG.\n\nMe voy a esconder.\n\nHabía olvidado que existían esas configuraciones. Me imagino que cuando las deshabilité, solo estaba pensando en notificaciones como “un administrador ha añadido una etiqueta o ha cambiado la categoría de tu tema” — no en acciones como las notificaciones de Watching o WFP.\n\nCreo que todavía puede haber algunas inconsistencias, ya que Watching una categoría parecía anular disable category edit modifications, mientras que WFP no lo hizo. Como penitencia, probaré esto más a fondo y haré un seguimiento con un par de personas más a las que contacté sobre el tema.\n\n(Además, @sam respaldó mi conclusión )\n[quote]\nWatch first post solo notifica sobre la publicación absolutamente inicial del tema.\n[/quote]\n\nPero gracias @JammyDodger por rescatarme de más horas de trastear con scripts de rails. Mi siguiente paso iba a ser vender mi sofá y pagarle a @pfaffman para que me ayudara.