La catégorie non classée désactivée apparaît dans les listes déroulantes de catégories

Est-ce que c’est dans sa dernière forme ? Il est désactivé et tout :

Mais il apparaît dans diverses listes déroulantes de catégories. Ce n’est probablement pas un problème majeur côté backend, mais il est également suggéré dans la recherche :

1 « J'aime »

Je n’ai pas de reproduction de ceci sur la branche principale.

@j.jaffeux Je suis capable de le reproduire sur try.discourse.org. Je peux dire que le paramètre « Autoriser les sujets non catégorisés » est désactivé sur ce forum car « Non catégorisé » n’est pas présent dans le menu « catégorie… » de l’éditeur de sujet.

Menu de recherche avancée

« Non catégorisé » est présent dans le menu « Catégorisé » de la recherche avancée sur la page de recherche.

  1. Cliquez sur le lien suivant pour ouvrir la page de recherche avancée du forum de démonstration Discourse dans votre navigateur Web :
    https://try.discourse.org/search
  2. Cliquez sur « Filtres avancés ».
    La section « Filtres avancés » de la page sera développée.
  3. Cliquez sur le menu « Toutes les catégories ».
    Le menu s’ouvrira.

:bug: Un élément « Non catégorisé » est présent dans le menu.

Autocomplétion de recherche

  1. Cliquez sur le lien suivant pour ouvrir le forum de démonstration Discourse dans votre navigateur Web :
    https://try.discourse.org/
  2. Cliquez sur l’icône de loupe (« Rechercher ») en haut à droite de la page.
    L’interface de recherche s’ouvrira.
  3. Tapez #u dans le champ « Rechercher ».
    Le menu d’autocomplétion du filtre de catégorie apparaîtra.

:bug: Un élément « Non catégorisé » est présent dans le menu d’autocomplétion du filtre de catégorie.

Autocomplétion de l’éditeur de message

  1. Si vous n’en avez pas déjà un, créez un compte sur try.discourse.org.
  2. Connectez-vous à votre compte sur try.discourse.org.
  3. Cliquez sur le lien suivant pour ouvrir le forum de démonstration Discourse dans votre navigateur Web :
    https://try.discourse.org/
  4. Cliquez sur le bouton « Nouveau sujet » en haut à droite de la page.
    L’éditeur de sujet s’ouvrira.
  5. Cliquez sur le champ du corps du message dans l’éditeur de sujet.
  6. Tapez #u dans le champ « Rechercher ».
    Le menu d’autocomplétion du filtre de catégorie apparaîtra.

:bug: Un élément « non catégorisé » est présent dans le menu d’autocomplétion du filtre de catégorie.

Réorganiser les catégories

Je suis également capable de reproduire la présence de la catégorie « Non catégorisé » dans la boîte de dialogue « Réorganiser les catégories ». Je l’ai reproduit sur un forum dont je suis administrateur, et où le paramètre « Autoriser les sujets non catégorisés » est désactivé (évidemment, je ne peux pas le tester sur try.discourse.org). Ce forum utilise la version Discourse d8c855e55978d00fc63021b31ecd00a4bee9d922.

  1. Connectez-vous avec un compte administrateur sur un forum où le paramètre « Autoriser les sujets non catégorisés » est désactivé.
  2. Ouvrez la page « Catégories » (/categories).
  3. Cliquez sur l’icône de clé à molette (« Gérer les catégories ») en haut à droite de la page.
    La boîte de dialogue « Réorganiser les catégories » s’ouvrira.

:bug: Un élément « Non catégorisé » est présent dans la boîte de dialogue.

Je suis d’accord avec @manuel sur le fait que la présence dans cette boîte de dialogue est moins grave que la présence dans les interfaces utilisateur, mais j’ai pensé qu’il fallait le mentionner car vous n’êtes apparemment même pas capable de reproduire ce défaut.

3 « J'aime »

@hugh Je ne suis même pas sûr que nous voulions conserver ce « non catégorisé » coupe-gorge à long terme.

Au fil des ans, j’ai essayé de me débarrasser d’autant que possible, mais de nouveaux cas limites continuent d’apparaître.

À mon avis, nous devrions supprimer les paramètres et simplement permettre aux gens de choisir une catégorie par défaut. Un composant thématique peut masquer un badge de catégorie particulier pour les rares cas où nous ne voulons pas l’afficher sur « Général » ou similaire.

2 « J'aime »

Les mainteneurs ont-ils pu reproduire le défaut en suivant les procédures que j’ai décrites dans ma réponse précédente ? Je demande car je vois que le sujet porte toujours la balise needs-repro.

Si vous êtes en mesure de reproduire le défaut, veuillez supprimer cette balise du sujet afin qu’il soit clair que le rapport est maintenant exploitable dans son état actuel.

2 « J'aime »

Tiens bon, camarade, c’est sorti de notre radar, nous priorisons cela pour la confirmation de la reproduction et l’attribution à un membre xp

1 « J'aime »

Per, je déteste devoir répondre par « essaie autre chose »

Mais je me demande, qu’est-ce qui t’empêche de simplement désactiver l’utilisation de « supprimer les non catégorisés » sur Arduino ?

Je trouve cette fonctionnalité entière comme une courbe d’apprentissage confuse, dans un univers parallèle, je supprimerais simplement le paramètre du site, les sujets ont besoin d’une catégorie, donc avoir cet univers où les sujets ont une catégorie (mais n’ont pas vraiment de catégorie) est déroutant et n’apporte vraiment que très peu aux utilisateurs finaux étant donné que tu peux simplement mettre les choses dans « général » si les gens ne peuvent pas catégoriser.

Aimerais-tu que nous t’aidions à porter la « récupération des sujets non catégorisés » dans une catégorie « Général » ?

2 « J'aime »

Parlez-vous de décocher le paramètre du site « Autoriser les sujets non catégorisés » ?

Si oui, c’est ainsi que le forum Arduino est configuré (et l’a toujours été).

Veuillez noter qu’à l’exception de « Réorganiser les catégories » (pour lequel nous avons déjà précisé qu’il n’est pas très important), j’ai vérifié que le défaut peut être reproduit en suivant les instructions que j’ai fournies sur try.discourse.org. Le forum Arduino n’est donc pas directement pertinent pour cette conversation. D’après ce que je peux constater en tant qu’utilisateur normal, le paramètre du site « Autoriser les sujets non catégorisés » est désactivé sur try.discourse.org.

Le problème signalé ici est que la catégorie Uncategorized est exposée dans l’interface utilisateur sur les forums où cette catégorie est désactivée via le paramètre du site « Autoriser les sujets non catégorisés ».

Cela me convient.

En tant que personne qui a lutté pendant des années pour que les utilisateurs choisissent une catégorie appropriée pour leurs sujets, je peux comprendre pourquoi certains opérateurs de forum trouveraient utile d’avoir une fonctionnalité qui permet aux utilisateurs de sauter la sélection d’une catégorie. Cependant, je n’ai aucun intérêt à utiliser la fonctionnalité « Autoriser les sujets non catégorisés » sur mon forum, donc la suppression de la fonctionnalité ne m’affecterait pas personnellement.

Comme je n’ai aucune expérience de l’utilisation de la fonctionnalité « Autoriser les sujets non catégorisés », je ne peux pas commenter les mérites relatifs de la fonctionnalité par rapport à l’utilisation d’une catégorie normale, comme vous le proposez.

Je pense que c’est une bonne idée de parler à quelqu’un qui utilise la fonctionnalité pour comprendre si elle est vraiment nécessaire ; je ne suis tout simplement pas cette personne.

Je ne suis pas sûr de comprendre ce que vous voulez dire par là. J’aimerais cependant comprendre.

Offrez-vous une forme d’aide pour la catégorisation du forum Arduino ?

Si vous regardez le forum Arduino, quelque chose qui pourrait prêter à confusion est que nous avons en fait une catégorie nommée « Non catégorisé ». Cependant, il s’agit d’une catégorie normale qui porte simplement ce nom, et non de la catégorie spéciale fournie par le paramètre du site « Autoriser les sujets non catégorisés ». Notre catégorie « Non catégorisé » a en fait un objectif complètement opposé à la fonctionnalité « Autoriser les sujets non catégorisés ». Elle n’est en aucun cas pertinente pour le sujet de ce rapport de bug, mais au cas où vous seriez intéressé par la raison pour laquelle nous avons fait cela, cela est expliqué ici.

2 « J'aime »

Je vois, j’ai fait un peu de débogage local, je confirme que c’est reproductible à 100 % sur les installations Discourse par défaut.

Permettez-moi de récapituler ici :

Il y a 2 paramètres concernant les non catégorisés :

allow_uncategorized_topics par défaut désactivé
suppress_uncategorized_badge par défaut activé

lorsque allow_uncategorized_topics est désactivé (configuration par défaut), nous en divulguons la présence à certains endroits.

Si vous essayez de contourner le problème en activant les non catégorisés afin de pouvoir les supprimer, vous êtes confronté à :

Dans Discourse, cette catégorie est très étrange dans le sens où :

  1. Elle doit exister
  2. Elle ne peut pas être supprimée
  3. Nous l’injectons dans beaucoup de logiques à de nombreux endroits :

Nous pouvons corriger la fuite en ajoutant simplement de plus en plus de conditions, nous en avons probablement au moins 10 maintenant, côté client et côté serveur.

Ou nous pouvons corriger cela à la base, permettre simplement aux administrateurs de supprimer la catégorie, alors elle disparaît et nous n’avons plus jamais besoin de la vérifier.

Ma recommandation ici est :

  1. Supprimer les deux paramètres et supprimer le paramètre caché uncategorized_category_id
  2. Avoir un concept de catégorie par défaut (ce que nous avons déjà) - nous avons déjà default_composer_category
  3. ‘uncategorized’ n’est alors plus un concept spécial, moins de choses à considérer.
  4. Avoir un composant de thème pour ceux qui doivent avoir une « catégorie sans badge »

Le bug de recherche actuel peut être corrigé avec quelque chose comme :

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(\u003ctemplate\u003e\u003cSearchAdvancedCategoryChooser /\u003e\u003c/template\u003e);

      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(\u003ctemplate\u003e\u003cSearchAdvancedCategoryChooser /\u003e\u003c/template\u003e);

      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(\u003ctemplate\u003e\u003cSearchAdvancedCategoryChooser /\u003e\u003c/template\u003e);

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

Mais ce n’est que le bug de la recherche avancée, nous jouons à la taupe ici…

3 « J'aime »