Nouveau sujet non par défaut à non catégorisé

Salut,

Lorsqu’un de mes utilisateurs (rôle ‘leader’) tente de créer un nouveau sujet, la catégorie est vide et s’il clique sur le bouton “créer un sujet”, il obtient une erreur 404 :

Lorsque j’essaie (en tant que personnel) de créer un nouveau sujet, j’ai toujours la catégorie vide, mais j’obtiens une erreur You supplied invalid parameters to the request: category (Vous avez fourni des paramètres invalides à la requête : catégorie) :

J’ai trouvé un réglage :

Permettre la création de sujets sans catégorie. ATTENTION : S’il y a des sujets sans catégorie, vous devez les recatégoriser avant de désactiver cette option.

Je ne me souviens pas l’avoir activé, mais elle est activée - je pense que c’est une option par défaut, mais je ne suis pas sûr.

J’ai examiné les paramètres de la catégorie “Non catégorisé” :

Cette catégorie est spéciale. Elle est utilisée comme catégorie par défaut pour les nouveaux sujets pour lesquels aucune catégorie n’est sélectionnée. Si vous souhaitez empêcher ce comportement et forcer la sélection d’une catégorie, veuillez désactiver le réglage ici. Si vous souhaitez modifier le nom ou la description, allez dans Personnaliser / Contenu du texte.

À court terme, je crains que nos utilisateurs n’aient une mauvaise expérience et ne puissent pas poster. (Erreur 404)

J’ai essayé de rechercher sur meta.discourse.org pour trouver des réponses à mes questions :

Question 1 : Pourquoi le champ catégorie est-il vide lorsque j’essaie de créer un nouveau sujet ? (il n’est pas vide lorsque je poste sur meta.discourse.org)

Question 2 : Si ‘Permettre la création de sujets sans catégorie.’ est activé, pourquoi reçois-je une erreur ? (Je soupçonne que ‘Non catégorisé’ signifie en fait ‘sans catégorie’, mais il est décrit comme ‘[…] la catégorie par défaut pour les nouveaux sujets pour lesquels aucune catégorie n’est sélectionnée.’

J’aime en fait le comportement de meta.discourse.org ; où il est par défaut sur ‘général’ au lieu de ‘non catégorisé’, mais je ne suis pas sûr de la bonne approche ;
a) renommer ‘Non catégorisé’ en ‘général’. (note : j’ai trouvé un post - datant de 2016 - qui indiquait que c’était une mauvaise idée, et assimilait ‘Non catégorisé’ à ‘null’ dans la base de données.)

OU

b) Créer une catégorie ‘général’, déplacer tous les non catégorisés vers ‘général’ (comment ?), définir ‘général’ comme la catégorie par défaut des nouveaux posts, et désactiver ‘Permettre la création de sujets sans catégorie.’

Tout conseil ou indication de la documentation pertinente est apprécié.

Meilleures salutations,

Stephen

PS Pour information, nous sommes un projet OSS et il s’agit d’une instance Discourse gratuite aimablement offerte par les sympathiques personnes de https://www.discourse.org

J’ai également remarqué cela. Mais j’ai désactivé les non catégorisés, mais cela devrait toujours sélectionner la catégorie supérieure dans ce cas. Il affiche le même champ de catégorie (vide) par défaut.

1 « J'aime »

Merci @MarcP !

Je pense que cela pourrait être un bug, mais je ne voulais pas préjuger.
s.

Salut Stephen,

Quelle version de Discourse votre site utilise-t-il ?

La catégorie « non catégorisée » a récemment été remplacée par une nouvelle catégorie générale. Une nouvelle catégorie de ce nom est-elle apparue sur votre site ? Aviez-vous une catégorie générale auparavant ?

Oui, j’avais une catégorie générale avant. J’utilise la dernière version, mais je l’ai remarqué depuis quelques semaines ?

Oui, cela semble être un comportement récent pour moi aussi.

Cela aurait dû être corrigé par ce commit, mais je constate que votre site a déjà été mis à jour pour l’inclure :

Il est possible que cela n’ait pas couvert tous les cas. Nous allons demander à quelqu’un de s’en occuper. :+1:

5 « J'aime »

Hmm, lorsque j’active autoriser les sujets non catégorisés, la catégorie non catégorisée apparaît toujours sur ma page de catégories. Même après avoir renommé ma catégorie générale.

La catégorie Non catégorisée n’est plus un paramètre par défaut du site depuis que la catégorie Général est activée sur Discourse. Dans les nouvelles installations de Discourse, il existe une catégorie par défaut Général. Ainsi, lorsque vous ouvrez le compositeur, la catégorie sélectionnée automatiquement est Général. Cependant, dans les anciennes installations où vous n’avez pas de catégorie générale, je pense que n’importe quelle catégorie peut être la catégorie générale. Je pense que cela signifie simplement dans ce cas la catégorie par défaut du compositeur. Donc, cela ne suffira pas si vous créez une catégorie nommée Général. Vous devrez également définir l’ID de catégorie avec le paramètre caché du site general_category_id.

Par exemple:
Si vous créez une nouvelle catégorie pour ce but général. Le nom de la catégorie peut être par exemple : Général et vous devrez également vérifier l’ID de la catégorie. Maintenant, dans cet exemple, ce sera 9.

La catégorie a été créée avec succès, mais si vous ouvrez le compositeur, ce ne sera pas la catégorie par défaut, alors configurons le paramètre caché du site.

Configurer category_id pour la catégorie générale

Remarque : category_id=9 n’est qu’un exemple, c’est l’ID de catégorie correct. Votre catégorie nouvellement créée aura probablement un numéro d’ID de catégorie différent.

cd /var/discourse
./launcher enter app
rails c
SiteSetting.general_category_id=9
exit
exit

Après cela, lorsque vous ouvrirez le compositeur, la catégorie category_id=9Général sera la catégorie par défaut.

2 « J'aime »

Avez-vous reconstruit depuis le renommage de général ?

Nous n’avons pas renommé « general » – nous avons seulement « non catégorisé » et nous ne l’avons pas renommé.

Discourse mis à jour : il y a 14 heures

nous sommes un projet OSS et il s’agit d’une instance Discourse gratuite (gracieusement fournie par les personnes sympathiques de https://www.discourse.org) donc les mises à niveau se font automatiquement sans notre intervention

La catégorie apparaît toujours vide

@Don

Merci - il s’agit d’une instance hébergée, je ne suis donc pas au courant d’un moyen d’obtenir un accès shell pour définir le paramètre de site masqué.

Cordialement

Stephen

1 « J'aime »

C’est le week-end pour la plupart de l’équipe, mais nous pouvons résoudre ce problème pour vous dès que quelqu’un sera disponible. :slightly_smiling_face::+1:

4 « J'aime »

Je veux juste m’assurer - afin de minimiser les perturbations pour les utilisateurs finaux :

  1. dois-je créer une catégorie « Général » en préparation ?

  2. Devrai-je déplacer tous les sujets de la catégorie « Non classé » vers général une fois le changement de configuration effectué ?

Merci de votre aide

Stephen

Si vous visez ce résultat plutôt que #uncategorized comme défaut, vous devriez pouvoir créer une nouvelle catégorie #general, y déplacer tous vos sujets #uncategorized à l’aide de l’outil de masse, puis désactiver allow uncategorized topics dans vos paramètres d’administration en préparation (cela ne corrigera cependant pas la liste déroulante).

Cependant, cela ne prendra que quelques minutes à un membre de l’équipe pour le corriger, ainsi que pour mettre à jour manuellement votre paramètre caché general_category_id, vous pourriez donc simplement attendre. :slightly_smiling_face:

4 « J'aime »

Merci, cette explication est très bonne et j’ai pu régler le problème. Je pense que ce sujet devrait être dans Support car ce n’est pas un bug et je suggère que votre réponse soit marquée comme solution.

1 « J'aime »

Pour que je comprenne bien

  • Les nouvelles instances de discourse ont une catégorie Générale qui est la catégorie par défaut lors de la publication d’un nouveau sujet.

  • Notre instance provient d’une époque où la catégorie par défaut était la catégorie « non classé ».
    La solution consiste à définir SiteSetting.general_category_id sur l’ID de la catégorie Non classé.

Cette commande :

SiteSetting.general_category_id=<nouvel ID de catégorie>

  • Les instances qui ont encore la catégorie Non classé doivent définir le paramètre ci-dessus lors de la mise à niveau.
1 « J'aime »

Tout est résolu. Nous sommes passés à l’utilisation de « Général » au lieu de « Non catégorisé » et le système fournit correctement une catégorie par défaut.

Merci à tous ceux qui ont aidé à diagnostiquer ce problème, et un merci spécial à @fzngagan pour l’avoir résolu si rapidement et professionnellement.

Cordialement,

Stephen

5 « J'aime »

Pour ceux qui auraient supprimé manuellement la catégorie Générale initiale avant cette correction

Il y a maintenant une correction supplémentaire qui nettoiera SiteSetting.general_category_id s’il est défini sur une catégorie qui n’existe pas :

3 « J'aime »