Desativado Não categorizado aparece nas listas suspensas de categorias

Está de volta em sua forma mais recente? Está desativado e tudo:

Mas aparece em vários menus suspensos de categoria. Provavelmente não é um grande problema no backend, mas também é sugerido na pesquisa:

1 curtida

Não tenho reprodução disso no main.

@j.jaffeux Consigo reproduzir isso em try.discourse.org. Posso dizer que a configuração “Permitir tópicos não categorizados” está desabilitada nesse fórum porque “Não categorizado” não está presente no menu “categoria…” do compositor de tópicos.

Menu de Pesquisa Avançada

“Não categorizado” está presente no menu “Categorizado” da pesquisa avançada na página de pesquisa.

  1. Clique no seguinte link para abrir a página de pesquisa avançada do fórum de demonstração do Discourse em seu navegador:
    https://try.discourse.org/search
  2. Clique em “Filtros avançados”.
    A seção “Filtros avançados” da página será expandida.
  3. Clique no menu “Todas as categorias”.
    O menu será aberto.

:bug: Um item “Não categorizado” está presente no menu.

Autocompletar Pesquisa

  1. Clique no seguinte link para abrir o fórum de demonstração do Discourse em seu navegador:
    https://try.discourse.org/
  2. Clique no ícone de lupa (“Pesquisar”) no canto superior direito da página.
    A interface de pesquisa será aberta.
  3. Digite #u no campo “Pesquisar”.
    O menu de autocompletar do filtro de categoria aparecerá.

:bug: Um item “Não categorizado” está presente no menu de autocompletar do filtro de categoria.

Autocompletar Compositor de Posts

  1. Se você ainda não tiver uma conta, crie uma em try.discourse.org.
  2. Faça login em sua conta em try.discourse.org.
  3. Clique no seguinte link para abrir o fórum de demonstração do Discourse em seu navegador:
    https://try.discourse.org/
  4. Clique no botão “Novo Tópico” no canto superior direito da página.
    O compositor de tópicos será aberto.
  5. Clique no campo do corpo do post no compositor de tópicos.
  6. Digite #u no campo “Pesquisar”.
    O menu de autocompletar do filtro de categoria aparecerá.

:bug: Um item “não categorizado” está presente no menu de autocompletar do filtro de categoria.

Reordenar Categorias

Também consigo reproduzir a presença da categoria “Não categorizado” na caixa de diálogo “Reordenar Categorias”. Reproduzi isso em um fórum em que sou administrador e onde a configuração “Permitir tópicos não categorizados” está desabilitada (obviamente não posso testar isso em try.discourse.org). Esse fórum está usando a versão do Discourse d8c855e55978d00fc63021b31ecd00a4bee9d922.

  1. Faça login com uma conta de administrador em um fórum onde a configuração “Permitir tópicos não categorizados” está desabilitada.
  2. Abra a página “Categorias” (/categories).
  3. Clique no ícone de chave inglesa (“Gerenciar categorias”) no canto superior direito da página.
    A caixa de diálogo “Reordenar Categorias” será aberta.

:bug: Um item “Não categorizado” está presente na caixa de diálogo.

Concordo com @manuel que a presença nesta caixa de diálogo é menos grave do que a presença nas interfaces voltadas para o usuário, mas pensei em mencionar isso, pois aparentemente você nem consegue reproduzir essa falha.

3 curtidas

@hugh Eu nem tenho certeza se queremos manter esse ninho de cobras “não categorizado” a longo prazo.

Ao longo dos anos, tentei arduamente me livrar do máximo possível, mas novos casos extremos continuam aparecendo.

Na minha opinião, deveríamos nos livrar das configurações e apenas permitir que as pessoas escolham uma categoria padrão. Um componente de tema pode ocultar um distintivo de categoria específico para os casos raros em que as pessoas não querem mostrá-lo em “Geral” ou similar.

2 curtidas

Os mantenedores conseguiram reproduzir a falha seguindo os procedimentos que descrevi em minha resposta anterior? Pergunto porque vejo que o tópico ainda tem a tag needs-repro.

Se vocês conseguirem reproduzir a falha, por favor, removam essa tag do tópico para que fique claro que o relatório agora é acionável em seu estado atual.

2 curtidas

aguenta firme, parceiro, saiu do nosso radar, priorizando isso para confirmação de repro e atribuindo a um membro da xp

1 curtida

Per, odeio ter que responder com “tente outra coisa”

Mas eu me pergunto, o que está impedindo você de simplesmente desativar o uso de “suprimir não categorizados” no Arduino?

Eu acho toda essa funcionalidade uma curva confusa, em um universo paralelo eu simplesmente excluiria a configuração do site, tópicos precisam de uma categoria, então ter esse universo onde tópicos têm uma categoria (mas realmente não têm uma categoria) é confuso e realmente adiciona muito pouco aos usuários finais, dado que você pode simplesmente jogar as coisas em “geral” se as pessoas não conseguirem categorizar.

Gostaria que ajudássemos a portar o “recuperar tópicos que não são categorizados” para uma categoria “Geral”?

2 curtidas

Com isso, você quer dizer desmarcar a configuração do site “Permitir tópicos não categorizados”?

Se sim, então é assim que o Fórum Arduino é (e sempre foi) configurado.

Por favor, note que, com exceção de “Reordenar Categorias” (que já especificamos não ser muito importante), verifiquei que a falha pode ser reproduzida pelas instruções que forneci em try.discourse.org. Portanto, o Fórum Arduino não é diretamente relevante para esta conversa. Pelo que posso ver como um usuário normal, a configuração do site “Permitir tópicos não categorizados” está desativada em try.discourse.org.

O problema relatado aqui é que a categoria Uncategorized é exposta na interface do usuário em fóruns que têm essa categoria desativada pela configuração do site “Permitir tópicos não categorizados”.

Tudo bem para mim.

Como alguém que lutou por anos para que os usuários escolhessem uma categoria apropriada para seus tópicos, posso entender por que alguns operadores de fórum achariam útil ter um recurso que permite aos usuários a opção de pular a escolha de uma categoria. No entanto, não tenho interesse em usar o recurso “Permitir tópicos não categorizados” em meu fórum, então a remoção do recurso não me afetaria pessoalmente.

Como não tenho experiência em usar o recurso “Permitir tópicos não categorizados”, não posso comentar sobre os méritos relativos do recurso em comparação com o uso de uma categoria normal, como você propõe.

Acho que é uma boa ideia conversar com alguém que usa o recurso para entender se ele é realmente necessário; eu apenas não sou essa pessoa.

Não tenho certeza se entendi o que você quer dizer com isso. Gostaria de entender, no entanto.

Você está oferecendo alguma forma de assistência com a categorização do Fórum Arduino?

Se você estiver olhando para o Fórum Arduino, algo que pode causar confusão é que realmente temos uma categoria chamada “Não categorizado”. No entanto, esta é uma categoria normal que por acaso tem esse nome, não a categoria especial fornecida pela configuração do site “Permitir tópicos não categorizados”. Nossa categoria “Não categorizado” tem um propósito completamente oposto ao recurso “Permitir tópicos não categorizados”. Não é de forma alguma relevante para o assunto deste relatório de bug, mas caso você esteja interessado em por que fizemos isso, está explicado aqui.

2 curtidas

Entendo, fiz apenas um pouco de depuração local, confirmo que isso é 100% reproduzível em instalações padrão do Discourse.

Deixe-me recapitular aqui:

Existem 2 configurações quando se trata de não categorizado:

allow_uncategorized_topics padrão desligado
suppress_uncategorized_badge padrão ligado

quando allow_uncategorized_topics está desabilitado (configuração padrão) nós vazamos sua presença em certos lugares.

Se você tentar contornar habilitando não categorizado para que possa excluí-lo, você se depara com:

No Discourse, esta categoria é super estranha no sentido de que:

  1. Ela deve existir
  2. Ela não pode ser excluída
  3. Nós a injetamos em muita lógica em muitos lugares:

Podemos corrigir o vazamento apenas adicionando mais e mais condicionais, provavelmente já estamos com pelo menos 10 agora, tanto no cliente quanto no servidor.

Ou podemos corrigir isso na raiz, apenas permitir que os administradores excluam a categoria, então ela desaparece e nunca mais precisamos verificá-la.

Minha recomendação aqui é:

  1. Excluir ambas as configurações e excluir a configuração oculta uncategorized_category_id
  2. Ter um conceito de categoria padrão (o que já temos) - já temos default_composer_category
  3. ‘uncategorized’ então não é mais um conceito especial, menos coisas para raciocinar.
  4. Ter um componente de tema para pessoas que precisam ter uma “categoria sem um distintivo”

O bug de pesquisa atual pode ser corrigido com algo como:

diff --git a/app/assets/javascripts/select-kit/addon/components/search-advanced-category-chooser.js b/app/assets/javascripts/select-kit/addon/components/search-advanced-category-chooser.js
index a678919d16..83a9ed27db 100644
--- a/app/assets/javascripts/select-kit/addon/components/search-advanced-category-chooser.js
+++ b/app/assets/javascripts/select-kit/addon/components/search-advanced-category-chooser.js
@@ -1,4 +1,5 @@
 import { classNames } from "@ember-decorators/component";
+import { setting } from "discourse/lib/computed";
 import CategoryChooserComponent from "select-kit/components/category-chooser";
 import {
   pluginApiIdentifiers,
@@ -7,11 +8,13 @@ import {
 
 @classNames("search-advanced-category-chooser")
 @selectKitOptions({
-  allowUncategorized: true,
+  allowUncategorized: "allowUncategorized",
   clearable: true,
   none: "category.all",
   displayCategoryDescription: false,
   permissionType: null,
 })
 @pluginApiIdentifiers("search-advanced-category-chooser")
-export default class SearchAdvancedCategoryChooser extends CategoryChooserComponent {}
+export default class SearchAdvancedCategoryChooser extends CategoryChooserComponent {
+  @setting("allow_uncategorized_topics") allowUncategorized;
+}
import { render } from "@ember/test-helpers";
import { module, test } from "qunit";
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
import selectKit from "discourse/tests/helpers/select-kit-helper";
import SearchAdvancedCategoryChooser from "select-kit/components/search-advanced-category-chooser";

module(
  "Integration | Component | select-kit/search-advanced-category-chooser",
  function (hooks) {
    setupRenderingTest(hooks);

    hooks.beforeEach(function () {
      this.set("subject", selectKit());
    });

    test("respects allow_uncategorized_topics setting when false", async function (assert) {
      this.siteSettings.allow_uncategorized_topics = false;

      await render(
        <template><SearchAdvancedCategoryChooser /></template>
      );

      await this.subject.expand();

      // Uncategorized category (ID 17 in test data) should not be present when setting is false
      assert.false(
        this.subject.rowByValue(17).exists(),
        "uncategorized category is not available when allow_uncategorized_topics is false"
      );
    });

    test("shows uncategorized category when allow_uncategorized_topics is true", async function (assert) {
      this.siteSettings.allow_uncategorized_topics = true;

      await render(
        <template><SearchAdvancedCategoryChooser /></template>
      );

      await this.subject.expand();

      // Uncategorized category (ID 17 in test data) should be present when setting is true
      assert.true(
        this.subject.rowByValue(17).exists(),
        "uncategorized category is available when allow_uncategorized_topics is true"
      );
    });

    test("has correct default options", async function (assert) {
      await render(
        <template><SearchAdvancedCategoryChooser /></template>
      );

      assert.strictEqual(
        this.subject.header().label(),
        "All categories",
        "has correct default none label"
      );
    });
  }
);

Mas esse é apenas o bug da pesquisa avançada, estamos jogando whack-a-mole aqui…

3 curtidas