Não tenho certeza se é possível vincular um semelhante aos Termos de Serviço da mesma forma. O “Ler Diretrizes” depende de read_faq ser registrado na tabela user_stats e atualmente não há um mecanismo para fazer o mesmo para os Termos de Serviço.
Como a versão visualizável pelo usuário não é o tópico real, não acho que a visualização dessa página seja registrada em algum lugar (como topic_views, etc.).
É possível alterar o banco de dados/tabelas para incluir um novo read_tos?
Existe potencialmente uma solução alternativa feia…
…publicar um tópico como uma página publicada em vez de usar a integração perfeita como FAQ e Sobre. Não sei se isso realmente funcionará…
Testes e descobertas:
A consulta SQL retorna usuários que leram o tópico e, portanto, deveriam receber o badge, mas não recebi essa notificação.
Posso confirmar que visitas a /pub/slug sem visitar o tópico diretamente atualizarão a contagem de visualizações do tópico… no entanto, mesmo com um tempo de leitura absurdamente baixo, o badge não foi concedido automaticamente.
Também vale notar que o tópico em si ainda indica como novo e não lido para o usuário.
…
Testes adicionais de isolamento resultam em que a consulta SQL implica que os usuários devem visitar o tópico diretamente para serem considerados como tendo lido o tópico. Não posso confirmar nem negar, pois o badge não foi concedido, mas é o mais plausível.
Quando o gatilho “atualizar diariamente” é executado?
Você sabe de cabeça o que a equipe fez quando atualizou os Termos de Serviço (ToS) onde tínhamos que confirmar que revisamos? Embora não fosse um selo, isso talvez fosse o plugin de Política?
Você pode acelerar essa parte acionando manualmente jobs::BadgeGrant em sua página /sidekiq/scheduler (para aqueles com acesso). A minha foi executada há 3 horas, mas isso varia de site para site.
Se você não se importasse em tê-los em um tópico normal, poderia criar um novo e adicionar o link a ele à sua configuração de administrador tos url, para que ele ainda aparecesse nas abas. Você poderia então conceder um distintivo com bastante facilidade com base nas pessoas que visualizam esse tópico (embora seus experimentos com páginas publicadas também possam dar frutos ).
Acho que para fazer isso da mesma forma que o “Ler Diretrizes”, você precisaria criar um plugin para replicar o comportamento para os Termos de Serviço (embora não seja minha especialidade, então leve isso com uma pitada de sal ).
Este é um campo personalizado obrigatório, que acho que funciona muito bem para isso. Embora você apenas diga que os leu em vez de realmente lê-los, pode depender do principal objetivo da concessão do distintivo.