Tag-union implementation?

Continuing the discussion from Tags: category restrictions, tag groups, relationships:

I’m interested in building a tag union capability that would mimic how tag intersections are currently implemented (Tag intersections page): essentially the same result as intersections (the default category/Latest view), but doing an OR on multiple tags rather than an AND. I would appreciate any suggestions as a new Discourse developer.

My thoughts (so far) are as follows:

  • Searching on multiple tags via the search page essentially provides tag-union functionality (Does multiple tag search support AND vs OR?). The problem is that I don’t want the search results view – I want the default category page. Could search results be redirected to accomplish this?

  • If search results can’t be redirected, I’m open to attempting a /tags/union/ route (and have been looking into how intersection works). I would prefer to do this via plugin, but I am concerned that that is not something that could currently be accomplished via a plugin. Any suggestions here would be appreciated.

If there is sufficient user interest to add a tag-union capability into the Discourse core, I’d be willing to do it and submit a PR, but I’m hoping to find an alternative. Thanks in advance.

Não tenho certeza se isso conta como “interesse suficiente dos usuários”, mas pretendo reativar essa discussão para ver se os usuários/equipe estão interessados.

O que acham? @daniel

Houve alguma atualização sobre isso? Seria muito útil ter uma rota /tags/union.

Nós o temos agora, pelo menos em forma de rota:

https://meta.discourse.org/?tags[]=screen-reader&tags[]=accessibility

A longo prazo, estamos pensando em construir uma interface de usuário para filtragem e ordenação mais limpas das listas de tópicos.

Recebo uma lista de tópicos vazia ao clicar no URL fornecido:

Pode haver algum problema?

Sim, nosso roteador Ember precisa aprender sobre esta rota (cc @david)

Funcionará se você navegar diretamente para a URL

Preciso executar ./launcher rebuild app para ter esta atualização na minha instância auto-hospedada?

Eu esperaria até corrigirmos o roteamento do lado do cliente

Construir arrays de queryParam usando a sintaxe paramName[] é algo específico do framework backend, e não acho que seja suportado nativamente pelo Ember. Talvez possamos fazer funcionar, mas eu dei uma olhada rápida na implementação do lado do servidor do filtro tags e parece que também suportamos uma lista separada por espaços.

Portanto, este link já deve funcionar sem uma recarga completa da página: https://meta.discourse.org/?tags=screen-reader+accessibility

Isso é muito bom. No entanto, a página não mantém as restrições quando uma categoria é selecionada no canto superior esquerdo. Para páginas com tags únicas, isso funciona como esperado.

Por exemplo, se eu estiver em /tag/tag1 e escolher site-feedback no canto superior esquerdo. Ele mostra /tags/c/site-feedback/2/tag1.

Com /?tags=tag1+tag2, ele apenas me redireciona para /c/site-feedback/2.

É possível ter essa funcionalidade?

Acho que isso também foi solicitado nestes dois tópicos:

Esse tipo de coisa não é suportado no momento, mas é algo que estamos pensando em melhorar a longo prazo