Maneira correta de definir digest e ocultar categoria dos últimos

Olá,

Como administrador do fórum, gostaria que todos os usuários ficassem inscritos em certas categorias com a opção de lista de e-mails ativada.

Tentei configurar as categorias no meu perfil (assistidas, acompanhadas e silenciadas) para encontrar essas configurações no banco de dados. Gostaria de aplicar as mesmas configurações a outros usuários; parece que a tabela é category_users.

Estou correto ao pensar que posso fazer algumas inserções para alcançar isso?

Anteriormente, tentei definir algumas categorias como “incluídas na lista de e-mails” para ter certeza de que o resumo (digest) contería apenas essas categorias, mas não estava certo — essa configuração não ajusta o conteúdo do resumo.

Talvez a lógica seja diferente? O objetivo é:

  • Forçar novos usuários a receber um resumo de certas categorias (ok, deixe-os modificar depois, se quiserem)
  • Não mostrar algumas categorias na página “mais recentes” deles

Encontrei um tópico Viewing a list of users who are watching a category próximo ao meu caso. Mas não tinha certeza se deveria ressuscitá-lo após 5 anos.

por que você não usa essas configurações

Não tenho certeza se isso pode ajudar. Estou procurando uma maneira em lote de configurar isso para 100 outros usuários.

Se você selecioná-la, aparecerá uma caixa perguntando se deseja alterá-la para todos ou apenas a partir de agora. :+1:

Gostaria de compartilhar minha solução.

Cliquei nas configurações necessárias na interface (silenciar e acompanhar algumas categorias) conforme mencionado por Gavin:

Em seguida, conectei-me ao banco de dados para determinar os IDs das categorias e dos usuários. Tabelas: category_users e users.

Filtrei as configurações para mim mesmo (para user_id=5), conforme mostrado na imagem abaixo:

Agora, quero aplicar as mesmas configurações para dois outros usuários com id=33 e 34. Obviamente, preciso adicionar as linhas adequadas na tabela category_users.

Exemplo:

  • Existem 6 categorias: id=1, 2, 15, 17, 19 e 24.
  • Categorias silenciadas: 15 e 17.
  • Acompanhando a primeira postagem nas categorias 1, 2 e 24.
  • Monitorando a categoria 19.

Primeiro, criei um script que insere todas as categorias selecionadas na seção de silenciadas (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);

Você pode adicionar até 1000 linhas de uma vez.

Depois disso, atualizei as linhas para as categorias monitoradas e com acompanhamento da primeira postagem:

-- acompanhar primeira postagem
UPDATE "public"."category_users" SET "notification_level"='4' WHERE  "category_id" in (1,2,24);
-- monitorar
UPDATE "public"."category_users" SET "notification_level"='2' WHERE  "category_id"=19;

Após isso, as configurações do usuário foram atualizadas. As categorias silenciadas ficam ocultas da página principal e dos tópicos mais recentes.

imagem

Avise-me se houver alguma outra maneira simples de editar em massa as configurações dos usuários relacionadas a categorias silenciadas ou acompanhadas.