Come usare apply_custom_query da topic_query.rb sui topic della pagina di revisione nel plugin

Ciao,

ho un plugin che utilizza la funzione TopicQuery.add_custom_filter.

Applica il mio filtro personalizzato come previsto solo alla visualizzazione predefinita degli argomenti mostrata nella pagina di destinazione.

Ho notato che ciò accade perché nel file topic_query.rb, all’interno del metodo default_results, c’è una chiamata per applicare i miei filtri personalizzati con:

    result = apply_ordering(result, options)

Questo è ottimo, ma non esattamente ciò che volevo. Volevo che quel filtro venisse applicato a tutto ciò che appare sotto la pagina /review. Non sono sicuro di come farlo.

C’è qualcuno che conosce questa parte del codice?

Il modo in cui filtro attualmente è visibile qui:
https://github.com/hms-networks/discourse-location-filters/blob/test/app/controllers/filter_controller.rb

e il file Discourse.rb di cui parlo è questo:

Immagino di aver fatto un errore quando ho iniziato a seguire questo percorso di query sui topic, perché sembra che reviewables non utilizzi affatto quelle funzioni di query sui topic, quindi non posso applicare un filtro personalizzato in questo modo.

Inoltre, sono ancora un po’ confuso riguardo ai parametri di apply_custom_filters. results si riferisce a un hash Ruby di topic? E topic_query è solo un’istanza della classe?

Procedendo, non sono sicuro che questo sia il modo corretto per farlo, ma cercherò di scoprire come posso sovrascrivere la funzione reviewables_controller#index per rimuovere i topic dalla lista di reviewables in base all’utente corrente.

Sarebbe fantastico ricevere consigli e suggerimenti qui :slight_smile: