Deaktivierte Nicht kategorisierte Einträge werden in Kategorie-Dropdowns angezeigt

Ist das in seiner neuesten Form zurück? Es ist deaktiviert und alles:

Aber es wird in verschiedenen Kategorie-Dropdowns angezeigt. Wahrscheinlich kein so großes Problem im Backend, aber es wird auch in der Suche vorgeschlagen:

1 „Gefällt mir“

Ich habe keine Reproduktion davon im Main-Branch.

@j.jaffeux Ich kann es auf try.discourse.org reproduzieren. Ich kann feststellen, dass die Einstellung „Nicht kategorisierte Themen zulassen“ in diesem Forum deaktiviert ist, da „Nicht kategorisiert“ nicht im Menü „Kategorie…“ des Themenkomponisten vorhanden ist.

Erweitertes Suchmenü

„Nicht kategorisiert“ ist im Menü „Kategorisiert“ der erweiterten Suche auf der Suchseite vorhanden.

  1. Klicken Sie auf den folgenden Link, um die erweiterte Suchseite des Discourse-Demoforums in Ihrem Webbrowser zu öffnen:
    https://try.discourse.org/search
  2. Klicken Sie auf „Erweiterte Filter“.
    Der Abschnitt „Erweiterte Filter“ der Seite wird erweitert.
  3. Klicken Sie auf das Menü „Alle Kategorien“.
    Das Menü wird geöffnet.

:bug: Ein Element „Nicht kategorisiert“ ist im Menü vorhanden.

Such-Autocomplete

  1. Klicken Sie auf den folgenden Link, um das Discourse-Demoforum in Ihrem Webbrowser zu öffnen:
    https://try.discourse.org/
  2. Klicken Sie auf das Lupensymbol („Suchen“) oben rechts auf der Seite.
    Die Suchoberfläche wird geöffnet.
  3. Geben Sie #u in das Feld „Suchen“ ein.
    Das Autocomplete-Menü für den Kategoriefilter wird angezeigt.

:bug: Ein Element „Nicht kategorisiert“ ist im Autocomplete-Menü für den Kategoriefilter vorhanden.

Post Composer Autocomplete

  1. Wenn Sie noch keines haben, erstellen Sie ein Konto auf try.discourse.org.
  2. Melden Sie sich bei Ihrem Konto auf try.discourse.org an.
  3. Klicken Sie auf den folgenden Link, um das Discourse-Demoforum in Ihrem Webbrowser zu öffnen:
    https://try.discourse.org/
  4. Klicken Sie auf die Schaltfläche „Neues Thema“ oben rechts auf der Seite.
    Der Themenkomponist wird geöffnet.
  5. Klicken Sie in den Beitragsbereich des Themenkomponisten.
  6. Geben Sie #u in das Feld „Suchen“ ein.
    Das Autocomplete-Menü für den Kategoriefilter wird angezeigt.

:bug: Ein Element „nicht kategorisiert“ ist im Autocomplete-Menü für den Kategoriefilter vorhanden.

Kategorien neu anordnen

Ich kann auch das Vorhandensein der Kategorie „Nicht kategorisiert“ im Dialogfeld „Kategorien neu anordnen“ reproduzieren. Ich habe dies in einem Forum reproduziert, in dem ich Administrator bin und in dem die Einstellung „Nicht kategorisierte Themen zulassen“ deaktiviert ist (offensichtlich kann ich es auf try.discourse.org nicht testen). Dieses Forum verwendet die Discourse-Version d8c855e55978d00fc63021b31ecd00a4bee9d922.

  1. Melden Sie sich mit einem Administratorkonto in einem Forum an, in dem die Einstellung „Nicht kategorisierte Themen zulassen“ deaktiviert ist.
  2. Öffnen Sie die Seite „Kategorien“ (/categories).
  3. Klicken Sie auf das Schraubenschlüsselsymbol („Kategorien verwalten“) oben rechts auf der Seite.
    Das Dialogfeld „Kategorien neu anordnen“ wird geöffnet.

:bug: Ein Element „Nicht kategorisiert“ ist im Dialogfeld vorhanden.

Ich stimme @manuel zu, dass die Präsenz in diesem Dialogfeld weniger schwerwiegend ist als die Präsenz in den Benutzeroberflächen, aber ich dachte, ich sollte es erwähnen, da Sie diesen Fehler anscheinend nicht einmal reproduzieren können.

3 „Gefällt mir“

@hugh Ich bin mir nicht einmal sicher, ob wir diese „unsortierte“ Schlangengrube auf lange Sicht beibehalten wollen.

Im Laufe der Jahre habe ich mich bemüht, so viel wie möglich davon loszuwerden, aber es tauchen immer wieder neue Grenzfälle auf.

Meiner Meinung nach sollten wir die Einstellungen abschaffen und den Leuten einfach erlauben, eine Standardkategorie auszuwählen. Eine Theme-Komponente kann ein bestimmtes Kategorie-Badge für die seltenen Fälle ausblenden, in denen wir es nicht auf „Allgemein“ oder Ähnliches anzeigen möchten.

2 „Gefällt mir“

Konnten die Maintainer den Fehler reproduzieren, indem sie den von mir in meiner vorherigen Antwort beschriebenen Verfahren gefolgt sind? Ich frage, weil ich sehe, dass das Thema immer noch den #needs-repro-Tag hat.

Wenn Sie den Fehler reproduzieren können, entfernen Sie bitte diesen Tag aus dem Thema, damit klar ist, dass der Bericht nun in seinem aktuellen Zustand bearbeitbar ist.

2 „Gefällt mir“

Halte durch, Kollege, es ist von unserem Radar gefallen, wir priorisieren dies für die Bestätigung der Reproduktion und weisen es einem Mitglied der XP zu.

1 „Gefällt mir“

Per, ich muss ungern mit „versuchen Sie etwas anderes“ antworten.

Aber ich frage mich, was Sie davon abhält, die Nutzung „nicht kategorisierte unterdrücken“ bei Arduino einfach zu beenden?

Ich finde diese gesamte Funktion eine verwirrende Kurve, in einem Paralleluniversum würde ich einfach die Website-Einstellung löschen, Themen brauchen eine Kategorie, daher ist dieses Universum, in dem Themen eine Kategorie haben (aber keine wirkliche Kategorie haben), verwirrend und bietet Endbenutzern wirklich wenig, da man Dinge einfach in „Allgemein“ werfen kann, wenn Leute nicht kategorisieren können.

Möchten Sie, dass wir Ihnen helfen, die „Erfassung von Themen, die nicht kategorisiert sind“ in eine „Allgemeine“ Kategorie zu übertragen?

2 „Gefällt mir“

Meinen Sie damit, die Website-Einstellung „Unkategorisierte Themen zulassen“ zu deaktivieren?

Wenn ja, dann ist das so konfiguriert, wie das Arduino Forum ist (und war schon immer).

Bitte beachten Sie, dass ich mit Ausnahme von „Kategorien neu anordnen“ (von der wir bereits angegeben haben, dass sie nicht sehr wichtig ist) überprüft habe, dass der Fehler gemäß den von mir auf try.discourse.org angegebenen Anweisungen reproduziert werden kann. Das Arduino Forum ist also für diese Konversation nicht direkt relevant. Soweit ich das als normaler Benutzer beurteilen kann, ist die Website-Einstellung „Unkategorisierte Themen zulassen“ auf try.discourse.org deaktiviert.

Das hier gemeldete Problem ist, dass die Kategorie Uncategorized in der Benutzeroberfläche von Foren angezeigt wird, bei denen diese Kategorie über die Website-Einstellung „Unkategorisierte Themen zulassen“ deaktiviert ist.

Das ist in Ordnung für mich.

Als jemand, der jahrelang darum gekämpft hat, dass Benutzer eine geeignete Kategorie für ihre Themen auswählen, kann ich verstehen, warum einige Forenbetreiber es nützlich finden würden, eine Funktion zu haben, die Benutzern die Möglichkeit gibt, die Auswahl einer Kategorie zu überspringen. Ich habe jedoch kein Interesse daran, die Funktion „Unkategorisierte Themen zulassen“ in meinem Forum zu verwenden, sodass die Entfernung der Funktion mich persönlich nicht beeinträchtigen würde.

Da ich keine Erfahrung mit der Funktion „Unkategorisierte Themen zulassen“ habe, kann ich die relativen Vor- und Nachteile der Funktion gegenüber der Verwendung einer normalen Kategorie, wie Sie vorschlagen, nicht beurteilen.

Ich halte es für eine gute Idee, mit jemandem zu sprechen, der die Funktion verwendet, um zu verstehen, ob sie wirklich benötigt wird; ich bin nur zufällig nicht diese Person.

Ich bin mir nicht sicher, was Sie damit meinen. Ich würde es aber gerne verstehen.

Bieten Sie eine Form der Unterstützung bei der Kategorisierung des Arduino Forums an?

Wenn Sie sich das Arduino Forum ansehen, könnte etwas Verwirrung stiften, dass wir tatsächlich eine Kategorie namens „Uncategorized“ haben. Dies ist jedoch eine normale Kategorie, die zufällig diesen Namen trägt, nicht die spezielle Kategorie, die von der Website-Einstellung „Unkategorisierte Themen zulassen“ bereitgestellt wird. Unsere Kategorie „Uncategorized“ hat tatsächlich einen völlig gegenteiligen Zweck als die Funktion „Unkategorisierte Themen zulassen“. Sie ist in keiner Weise für das Thema dieses Fehlerberichts relevant, aber falls Sie daran interessiert sind, warum wir das getan haben, wird es hier erklärt.

2 „Gefällt mir“

Ich verstehe, ich habe gerade ein lokales Debugging durchgeführt und bestätige, dass dies bei Standardinstallationen von Discourse zu 100 % reproduzierbar ist.

Lassen Sie mich hier zusammenfassen:

Es gibt 2 Einstellungen für “Uncategorized”:

allow_uncategorized_topics Standard aus
suppress_uncategorized_badge Standard an

Wenn allow_uncategorized_topics deaktiviert ist (Standardeinstellung), sickert seine Präsenz an bestimmten Stellen durch.

Wenn Sie versuchen, dies zu umgehen, indem Sie “Uncategorized” aktivieren, damit Sie es löschen können, werden Sie mit Folgendem konfrontiert:

In Discourse ist diese Kategorie insofern sehr seltsam:

  1. Sie muss vorhanden sein
  2. Sie kann nicht gelöscht werden
  3. Wir injizieren sie in viele Logiken an vielen Stellen:

Wir können das Durchsickern beheben, indem wir einfach mehr und mehr Bedingungen hinzufügen. Wir sind wahrscheinlich bei mindestens 10 angelangt, sowohl auf der Client- als auch auf der Serverseite.

Oder wir können dies im Kern beheben, indem wir Administratoren einfach erlauben, die Kategorie zu löschen. Dann verschwindet sie und wir müssen sie nie wieder überprüfen.

Meine Empfehlung hier ist:

  1. Löschen Sie beide Einstellungen und die versteckte Einstellung uncategorized_category_id.
  2. Haben Sie ein Konzept für eine Standardkategorie (was wir bereits haben) - wir haben bereits default_composer_category.
  3. “Uncategorized” ist dann kein spezielles Konzept mehr, weniger Dinge, über die man nachdenken muss.
  4. Haben Sie eine Theme-Komponente für Leute, die unbedingt eine “Kategorie ohne Auszeichnung” haben müssen.

Der aktuelle Suchfehler kann mit etwas wie diesem behoben werden:

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"
      );
    });
  }
);

Aber das ist nur der Bug in der erweiterten Suche, wir spielen hier “Wack-a-Mole” …

3 „Gefällt mir“