Categoria suprimida incluída na compilação

Temos uma categoria “Inadequada” onde os moderadores podem mover posts sinalizados, para que ainda possam ser discutidos, mesmo não sendo adequados para nosso fórum público. Obviamente, não queremos que essa categoria seja incluída nos e-mails de resumo, e ela foi suprimida nas configurações do site:

Screenshot from 2021-09-12 07-39-34

No entanto, um tópico dessa categoria foi incluído em nosso resumo recente. Desmarquei e marquei novamente a opção nas Configurações e vi que houve uma alteração no log:

O 14 é o ID da categoria Inadequada. A categoria Anterior 2 (provavelmente “Feedback do Site”) foi excluída há bastante tempo, mas aparentemente ainda estava incluída na lista de categorias suprimidas. Seria isso um bug que impediu a lista de funcionar conforme o esperado?

3 curtidas

Acabei de verificar a prévia do resumo e a categoria ainda está incluída.

Na verdade, a supressão não funciona para nenhuma categoria que eu escolha.

Sim, acabei de testar isso no meu site de desenvolvimento local e estou encontrando o mesmo problema. Acredito que a questão esteja na lógica usada aqui:

Alterar essa linha para topics = topics.where("topics.category_id NOT IN (?)", remove_category_ids) parece resolver o problema com as categorias que foram adicionadas à configuração digest_suppress_categories, mas será necessária alguma lógica adicional para lidar com categorias silenciadas. Talvez algo como:

topics = topics.where("topics.category_id NOT IN (?)", remove_category_ids).where("topic_users.notification_level != (?)", TopicUser.notification_levels[:muted])
3 curtidas

Acho que o problema é que o usuário-alvo já visitou aquele tópico e um registro do modelo TopicUser foi criado para esse usuário. Assim, esse tópico atende à condição acima, onde verificamos se ele não está silenciado ou não. Nesse caso, o PR abaixo deve corrigir esse problema.

3 curtidas