Hola. ¿Hay alguna forma de anular la elección deliberada de los usuarios existentes?
Intenté UserOption.update_all(default_categories_watching: <id>) y UserOption.update_all(watched_categories: <id>), pero estas no son opciones de usuario…
EDITAR y solución: User.all.each do |user| CategoryUser.batch_set(user, :watching, [<id>]) end
Es posible hacerlo a través de la consola de Rails (y también de la API), pero consideraría cuidadosamente si debería hacerlo o no. Si un usuario ha tomado la decisión deliberada de seguir o silenciar una categoría (o etiqueta o tema), anular esa elección probablemente no será deseado. También pueden simplemente volver a cambiarlo a lo que era, por lo que puede que no gane nada.
La idea es revertir la nueva configuración predeterminada (seguir una categoría determinada) y luego dejar que las personas la cambien como deseen.
Ahora he notado que el comando anterior User.all.each do |user| CategoryUser.batch_set(user, :watching, [<id>]) end de alguna manera no funcionó para cambiar las preferencias de todos los usuarios. ¿Alguna idea de por qué? Sería aún mejor agregar la nueva preferencia de seguimiento a las preferencias de seguimiento de usuario existentes…
PD: somos una comunidad pequeña y sé que solo una fracción aún menor se tomó el tiempo de ajustar sus preferencias (;
Para cualquiera que no haya configurado específicamente una categoría a un nivel de notificación, restablecer la categoría predeterminada de observación y aplicarla históricamente debería restablecerlas a los niveles normales.
Si los números son pequeños, usar la interfaz de usuario o la API puede ser una apuesta más segura que la consola de rails. ¿De cuántas personas estamos hablando?
Para que quede claro, la categoría en cuestión se llama Anuncios y su ID es 22.
Hice exactamente esto antes de intentar también el comando. Pero todavía, después de ambos, en una nueva publicación en Anuncios, solo algunos usuarios reciben un correo electrónico.
Lo que podría haber sucedido es que los usuarios se dieron de baja de las notificaciones por correo electrónico porque el correo electrónico de resumen solo contenía actividad “menor” (es decir, ninguna publicación de Anuncios como se describe en el problema relacionado vinculado anteriormente).
¿Tienes instalado el explorador de datos? Si es así, ¿tienes alguna consulta para ver cuántos de tus usuarios no tienen el seguimiento y/o la preferencia de correo electrónico correctos?
Creo que necesitamos saber un poco más de detalle antes de encontrar una solución. La tabla category_users solo guarda un registro de los niveles de notificación de categorías activas, por lo que si alguien no tiene uno, los datos no estarán en la tabla para cambiarlos a través de la consola de Rails. (por ejemplo, si agrego #site-feedback a la configuración de administrador de default categories watching, agregará un registro en category_users para cada usuario, y cuando restablezca la configuración, eliminará esos registros nuevamente).
Puedo confirmar que User.all.each do |user| CategoryUser.batch_set(user, :watching, [22]) cambió las preferencias de seguimiento de todos los usuarios para observar la categoría deseada (22 | Anuncios); ya que esta consulta enumera a todos los usuarios:
SELECT *
FROM category_users
WHERE category_id = '22' AND notification_level = '3'
Y esta consulta enumera solo 1 usuario:
SELECT *
FROM user_options uo
WHERE uo.email_level = '2'
La pregunta ahora es, ¿por qué a tantos usuarios no se les envía un correo electrónico cuando hay una nueva publicación en la categoría 22 “Anuncios”?
PD: Estuve jugando con las consultas SQL y no sé cómo unirlas.
Hola. Todavía no he encontrado una solución. No logro entender las preferencias de usuario necesarias para recibir correos electrónicos de notificación de publicaciones para temas seguidos. ¿Alguna idea? ¡Gracias!
Por si acaso, sigo investigando y tratando de resolver este problema. Aislé la configuración de uno de nuestros usuarios que tiene la configuración predeterminada de seguir una categoría específica (‘Anuncios’) pero que no recibe notificaciones por correo electrónico para nuevas publicaciones:
usuario
modo_lista_correo
resúmenes_correo
enlaces_externos_en_nueva_pestaña
habilitar_citación
favicon_dinámico
desanclar_automáticamente_temas
minutos_resumen
milisegundos_seguir_temas_automáticamente
minutos_duración_nuevo_tema
última_redirección_a_superior_en
responder_previos_correo
responder_a
frecuencia_notificación_me_gusta
frecuencia_modo_lista_correo
incluir_tl0_en_resúmenes
nivel_notificación_al_responder
secuencia_clave_tema
permitir_mensajes_privados
página_principal
ids_tema
ocultar_perfil_y_presencia
clave_tamaño_texto
secuencia_tamaño_texto
nivel_correo
nivel_mensajes_correo
clave_modo_conteo_título
habilitar_retraso
zona_horaria
habilitar_usuarios_pm_permitidos
esquema_oscuro
omitir_consejos_nuevos_usuarios
esquema_color
calendario_predeterminado
fecha_más_antigua_registro_búsqueda
chat_habilitado
solo_notificaciones_push_chat
sonido_chat
retención_recordatorio_retención_canal_descartado
retención_recordatorio_retención_dm_descartado
preferencia_eliminación_automática_marcador
mencionar_canal_amplio_ignorar
frecuencia_correo_chat
habilitar_barra_lateral_experimental
popups_vistos
preferencia_indicador_encabezado_chat
barra_lateral_enlace_a_lista_filtrada
barra_lateral_mostrar_conteo_nuevos_elementos
precedencia_vistos_sobre_silenciados
modo_barra_lateral_chat_separado
temas_no_leídos_al_cerrar
mostrar_indicaciones_título_hilo
JohnDoe
falso
verdadero
verdadero
verdadero
falso
verdadero
10080
240000
2880
2023-06-13T08:25:13.000Z
1
falso
1
1
verdadero
2
0
verdadero
NULL
{}
falso
0
0
1
1
0
falso
Europa/AlgúnLugar
falso
NULL
falso
NULL
0
NULL
verdadero
NULL
NULL
NULL
NULL
3
NULL
1
falso
{1,2,3,4,5}
0
falso
falso
NULL
0
verdadero
verdadero
Realmente no veo por qué surge este problema, porque esta es la línea del usuario cuando consulto los usuarios que siguen la categoría ‘Anuncios’:
id
categoría
usuario
nivel_notificación
última_vista_en
123
Anuncios
JohnDoe
3
NULL
¿Hay alguna otra configuración que me esté perdiendo? ¿Podría ser que el usuario hizo clic en darse de baja en uno de los correos electrónicos de notificación y eso cambió su configuración de correo electrónico?
Hacer clic en el enlace “darse de baja” de un correo electrónico de notificación lleva al usuario a una página donde puede modificar sus preferencias de notificación. Por ejemplo:
Si un usuario seleccionó alguna de las opciones “dejar de seguir todos los temas de la categoría <category_name>” o “No me envíes ningún correo electrónico de Discourse”, verás los cambios en su página de preferencias. O bien, la categoría se habrá eliminado de su lista de categorías seguidas, o sus preferencias de correo electrónico se habrán modificado de modo que todos los ajustes de su página de correo electrónico se establecerán en “nunca”.
Es más difícil ver el cambio si el usuario seleccionó la opción “dejar de seguir este tema”. En ese caso, puedes suplantar al usuario desde su página de administrador, luego visitar el tema para ver si su nivel de notificación para el tema ha cambiado de “seguir” a “rastrear”. También puedes obtener información sobre su nivel de notificación para el tema desde la consola de Rails:
Antes de involucrarte demasiado en esto, ve a la página de Registros de correos electrónicos omitidos del sitio. Puedes navegar a ella desde la barra lateral de administración. Introduce el correo electrónico del usuario en el campo “Dirección a” que se encuentra en la parte superior de la página. Podría mostrarte detalles sobre por qué no se envió el correo electrónico en particular al usuario.
Revisé la sección de correos electrónicos omitidos. Solo hay casos de “El usuario fue visto recientemente”, “Notificaciones de listas de correo deshabilitadas para las publicaciones del propio usuario” y “Se superó el umbral de puntuación de rebote”.
Me preguntaba si existe la posibilidad de cambiar la configuración para todos los usuarios de alguna de las siguientes maneras:
Cambiar la configuración de todos los usuarios “como si” acabaran de registrarse.
o: Creo un nuevo usuario de prueba y uso esta configuración para pegarla en todos los demás usuarios existentes.
Existe la configuración del sitio “default categories watching” (categorías predeterminadas que se observan). Si la cambias, se te dará la opción de aplicar los cambios históricamente. Seleccionar esa opción actualizará las preferencias de todos los usuarios excepto los usuarios que hayan configurado explícitamente su preferencia para esa categoría en su página de preferencias. Creo que ese es el problema que intentas evitar. Probablemente podrías solucionarlo desde la consola de Rails, pero yo evitaría ese enfoque.
Podrías simplemente crear una nueva categoría para anuncios y añadir esa categoría a la configuración del sitio “default categories watching” de tu sitio. Luego podrías organizar el sitio moviendo temas de la antigua categoría de anuncios a la nueva. Si quieres mantener el nombre de la categoría “announcements” (anuncios), empieza por renombrar la categoría original “announcements” a otra cosa. Me doy cuenta de que esto es un poco un hackeo, pero es una forma de resolver el problema sin tocar la consola de Rails.