Ciao,
Sto lavorando a un plugin che filtra tutti i topic in base a dove è stato pubblicato il topic e a quale gruppo appartiene l’utente che lo visualizza. Il caso d’uso qui è avere un team di supporto in diversi paesi che gestisce le domande provenienti dalle rispettive località.
Sono un nuovo creatore di plugin per Discourse e sto ancora imparando come fare. La località del topic sarà gestita dal plugin Locations disponibile qui: Locations Plugin 🌍
Aggiungerò gli utenti che devono avere questa vista filtrata a un gruppo chiamato qualcosa come NA_queue o EU_queue.
Il plugin verificherà se l’utente è loggato e se è impostato il gruppo principale. Se lo è, filtrerà tutti i topic in modo che corrispondano alla coda a cui appartiene l’utente corrente.
Penso che questo possa essere realizzato con qualcosa di simile al seguente codice:
after_initialize do
require_dependency ‘topic_query’
# se loggato e con gruppo principale impostato
# necessario ottenere il gruppo principale dell'utente
# necessario ottenere la località del topic
TopicQuery.add_custom_filter(:location) do |results, topic_query|
filter = "ALCUNA QUERY SQL QUI"
results = results.joins("{filter}")
results
end
È questo un buon approccio al mio problema?
Inoltre, qualcuno ha suggerimenti su quale dovrebbe essere la query SQL o su come ottenere le due informazioni commentate?