Como usar apply_custom_query do topic_query.rb em tópicos da página de revisão no plugin

Olá,

Tenho um plugin que utiliza a função TopicQuery.add_custom_filter.

Ele aplica meu filtro personalizado conforme o esperado apenas na visualização padrão dos tópicos exibidos na página inicial.

Percebi que isso ocorre porque, no arquivo topic_query.rb, dentro do método default_results, há uma chamada para aplicar meus filtros personalizados com:

    result = apply_ordering(result, options)

Isso é ótimo, mas não é exatamente o que eu queria. Eu gostaria que esse filtro fosse aplicado a qualquer coisa que aparecesse na página /review. Não tenho certeza de como faria isso.

Alguém está familiarizado com essa parte do código?

A forma como estou filtrando atualmente pode ser vista aqui:
https://github.com/hms-networks/discourse-location-filters/blob/test/app/controllers/filter_controller.rb

E o arquivo rb do Discourse sobre o qual estou falando é este:

Acho que errei ao começar a seguir esse caminho de consulta por tópico, pois parece que o reviewables nem usa essas funções de consulta por tópico, então não consigo aplicar um filtro personalizado dessa forma.

Também ainda estou um pouco confuso sobre quais são os parâmetros de apply_custom_filters. Será que results se refere a um hash Ruby de tópicos? E topic_query é apenas uma instância da classe?

Avançando, não tenho certeza se essa é a maneira correta de fazer isso, mas vou tentar descobrir como posso sobrescrever a função reviewables_controller#index para remover tópicos da lista de reviewables dependendo do usuário atual.

Dicas e sugestões aqui seriam legais :slight_smile: