Manera adecuada de configurar el resumen y ocultar la categoría de las últimas noticias

Hola,

Como administrador del foro, quiero que todos los usuarios estén suscritos a ciertas categorías con la opción de lista de correo habilitada.

Intenté configurar las categorías en mi perfil (observadas, seguidas y silenciadas) para encontrar estas opciones en la base de datos. Me gustaría aplicar la misma configuración a otros usuarios; parece que la tabla relevante es category_users.

¿Tengo razón al pensar que puedo realizar algunas inserciones para lograr esto?

Anteriormente, intenté marcar algunas categorías como “en lista de correo” para asegurarme de que el resumen solo incluyera esas categorías, pero me equivoqué: esta configuración no ajusta el contenido del resumen.

¿Quizás la lógica es diferente? El objetivo es:

  • Obligar a los nuevos usuarios a recibir un resumen de ciertas categorías (está bien, que puedan modificarlo ellos mismos más tarde).
  • No mostrar algunas categorías en su página de “últimos”.

Encontré un tema Viewing a list of users who are watching a category que se acerca a mi caso. Pero no estaba seguro de revivirlo después de 5 años.

¿Por qué no usas esta configuración?

No estoy seguro de que esto pueda ayudar. Busco una forma en lote de configurarlo para otros 100 usuarios.

Si lo seleccionas, aparecerá un cuadro preguntando si deseas cambiarlo para todos o solo a partir de ahora. :+1:

Me gustaría compartir mi solución.

Hice clic en la configuración necesaria en la interfaz de usuario (silenciar y seguir algunas categorías), como mencionó Gavin:

Luego, me conecté a la base de datos para determinar los IDs de las categorías y los usuarios. Las tablas son: category_users y users.

Filtré la configuración para mí (para user_id=5), como se muestra en la imagen a continuación:

A continuación, quiero aplicar la misma configuración para otros dos usuarios con id=33 y 34. Obviamente, necesito agregar las líneas correspondientes en la tabla category_users.

Ejemplo:

  • Hay 6 categorías: id=1, 2, 15, 17, 19 y 24.
  • Categorías silenciadas: 15 y 17.
  • Observando la primera publicación en las categorías 1, 2 y 24.
  • Siguiendo la categoría 19.

Primero, creé un script que inserta todas las categorías seleccionadas en la sección de silenciados (notification_level=0):

INSERT INTO 
	"category_users" 
	("category_id", "user_id", "notification_level", "last_seen_at") 
VALUES
(24, 34, 0, NULL),
(2,  34, 0, NULL),
(1,  34, 0, NULL),
(19, 34, 0, NULL),
(15, 34, 0, NULL),
(17, 34, 0, NULL),

(24, 33, 0, NULL),
(2,  33, 0, NULL),
(1,  33, 0, NULL),
(19, 33, 0, NULL),
(15, 33, 0, NULL),
(17, 33, 0, NULL);

Puedes agregar hasta 1000 líneas a la vez.

Después de eso, actualicé las filas para las categorías seguidas y observadas en la primera publicación:

-- observar primera publicación
UPDATE "public"."category_users" SET "notification_level"='4' WHERE  "category_id" in (1,2,24);
-- seguir
UPDATE "public"."category_users" SET "notification_level"='2' WHERE  "category_id"=19;

Después de esto, la configuración del usuario se actualiza. Las categorías silenciadas se ocultan de la página principal y de los temas más recientes.

изображение

Háganme saber si existe alguna otra forma sencilla de editar masivamente la configuración de los usuarios relacionada con categorías silenciadas o observadas.