Não categorizado aparecendo no celular

Tenho um site com a opção ‘permitir tópicos sem categoria’ desativada, mas a categoria ‘sem categoria’ aparece para usuários deslogados (ou logados como administrador) no Android. Acabei de fazer uma reconstrução. Os componentes do tema não explicam isso. O problema persiste no Modo Seguro. Apenas plugins oficiais estão instalados.

Não vejo o problema no Desktop.

https://www.druidforum.org/

1 curtida

Você removeu todos os tópicos da categoria sem categoria?

3 curtidas

É! É apenas sobre o tópico, nada mais. Não consigo entender como isso seria possível com as especificações que presumo que estejam em vigor. E é apenas no mobile, não no desktop.

2 curtidas

Conseguimos reproduzir isso, @tshenry? Parece que é apenas no mobile?

3 curtidas

Não acredito que esperemos que o tópico Sobre permaneça em Sem Categoria quando estiver desativado. O aviso na descrição da configuração do site ‘permitir tópicos sem categoria’ diz (ênfase adicionada):

AVISO: Se houver qualquer tópico sem categoria, você deverá recategorizá-los antes de desativar essa opção.

Você pode tentar mover o tópico Sobre para uma categoria ativa? Isso pareceu funcionar no meu site de teste.

2 curtidas

Ah. OK. Isso resolveu.

Isso é bastante confuso, pois normalmente é proibido excluir um tópico “sobre” (mas acho que não é realmente um tópico sobre, já que não é uma categoria). Mas eu excluí, e agora “Sem categoria” não aparece mais. E tive que fazer isso pelo celular, porque senão não conseguiria encontrá-lo.

“Sem categoria” é muito confuso, já que NÃO é uma categoria. Acredito realmente que deveria estar desativado por padrão.

1 curtida

Não, porque não acredito em impor uma classificação artificial de Animal, Vegetal ou Mineral a cada instância no mundo desde o início. Desculpe.

Por favor, atente-se ao aviso que está lá por um motivo:

AVISO: Se houver qualquer tópico sem categoria, você deve recategorizá-los antes de desativar isso.

Dito isso, podemos normalizar esse comportamento @zogstrip para que seja consistente entre dispositivos móveis e desktop?

Sim. Entendo esse argumento e costumava concordar, mas acho que uma categoria padrão faria mais sentido do que uma categoria “não definida”. Mas vou tentar não sugerir isso novamente, a menos que, talvez, um dia estejamos no mesmo espaço com :beer:.

@nbianca, você pode adicionar à sua lista investigar por que a categoria “sem categoria” estava aparecendo no mobile, mas não no desktop?

4 curtidas

No desktop, exibimos categorias e tópicos separadamente, mas no mobile exibimos categorias com tópicos, combinados. Tendo isso em mente, é esta linha que causa o bug:

c.displayable_topics.blank? é sempre verdadeiro no desktop porque carregamos os tópicos separadamente, então displayable_topics está sempre vazio. No mobile, é verdadeiro apenas se realmente não houver tópicos naquela categoria.

Temos duas soluções aqui:

  • mostrar “sem categoria” se houver pelo menos um tópico, independentemente do valor da configuração “permitir tópicos sem categoria”

  • ocultar “sem categoria” mesmo que haja um tópico, se “permitir tópicos sem categoria” for falso

A segunda solução é mais fácil de implementar porque significa que simplesmente removemos a segunda parte da condição.

6 curtidas

Acho que esconder os tópicos que estão em ‘sem categoria’ é (estranhamente) menos confuso do que NÃO esconder ‘sem categoria’ quando você ativa a configuração. Acredito que, se você desativar ‘sem categoria’, notará imediatamente que todos aqueles tópicos desapareceram, mas se nada acontecer ao desativar ‘sem categoria’, parecerá que algo está quebrado.

2 curtidas

Vamos com a mais fácil, pois estamos perto de um lançamento aqui e não quero fazer nada muito arriscado.

2 curtidas

Meu voto aqui é “eliminar o máximo possível de código especial não categorizado”. Quanto mais tivermos, mais confuso tudo fica.

Então eu votaria por:

mostrar não categorizados se houver pelo menos um tópico, independentemente do valor da configuração ‘permitir tópicos não categorizados’

Desde que a implementação remova o código mágico especial do Discourse e reduzamos os casos de borda.

Basicamente, escolha a solução que elimina mais código do Discourse.

1 curtida

Enviei uma correção para o bug no primeiro post:

Optei pela primeira solução porque é a que remove código do Discourse. A outra, na verdade, adiciona código para verificar se há pelo menos um tópico na categoria “Sem categoria”.

Também revisei todos os usos de category.uncategorized? e encontrei alguns locais que podem não ser necessários se fizermos com que “Sem categoria” seja menos um caso especial e mais uma categoria comum:

Essas são partes que não interferem em outros recursos, o que torna as alterações menos arriscadas, mas ainda assim não são fáceis.

6 curtidas