Filtre de la liste des sujets expérimentaux

Nous avons récemment introduit une route /filter innovante, permettant un filtrage plus sophistiqué de la liste des sujets. De manière significative, cela marque la première étape vers un langage unifié de filtrage des sujets pour la recherche et le filtrage. De plus, la route dédiée au filtrage de la liste des sujets améliore la personnalisation de la barre latérale, car les utilisateurs peuvent désormais y inclure des liens en tant que liens de section personnalisés.

Comment l’activer

Activez le paramètre du site experimental_topics_filter dans l’interface d’administration.

Comment ça marche

La route /filter dispose d’un champ de saisie où les utilisateurs peuvent entrer une chaîne de requête pour filtrer la liste des sujets.

Par exemple, category:documentation tag:how-to+email filtrera les sujets de la catégorie Documentation portant les étiquettes how-to et email.

Actuellement, voici la liste des filtres pris en charge :

status:open sujets qui ne sont pas fermés ou archivés
status:closed sujets qui sont fermés
status:public sujets qui ne sont pas soumis à des restrictions de lecture (par exemple, appartiennent à une catégorie sécurisée)
status:archived sujets qui sont archivés
status:unlisted sujets qui ne sont pas visibles
status:listed sujets qui sont visibles
status:deleted sujets

in:pinned sujets qui sont épinglés (épingles globales ou par catégorie)
in:watching éléments que je suis - prend en charge (muted,normal,tracking, watching_first_post) : permet de filtrer les éléments que vous suivez, regardez, etc. - plusieurs valeurs peuvent être séparées par des virgules
in:bookmarked éléments que j’ai mis en favori

category:bug sujets de la catégorie bug ET de toutes les sous-catégories
=category:bug sujets de la catégorie bug, sous-catégories exclues
category:documentation:admins sujets de la sous-catégorie admins de documentation
category:bug,feature sujets des catégories bug ou feature, y compris toutes les sous-catégories
=category:bug,feature sujets des catégories bug ou feature, sous-catégories exclues
-category:bug,feature sujets des catégories bug ou feature, y compris toutes les sous-catégories, exclus
-=category:bug,feature sujets des catégories bug ou feature, sous-catégories exclues, exclus
categories: alias pour category

tag:bug+feature sujets étiquetés bug et feature
tag:bug,feature sujets étiquetés bug ou feature
-tag:bug+feature sujets étiquetés bug et feature, exclus
-tag:bug,feature sujets étiquetés bug ou feature, exclus
tags: alias pour tag

tag_group:nom_groupe_etiquette sujets étiquetés avec n’importe quelle étiquette du groupe_etiquette
-tag_group:nom_groupe_etiquette sujets étiquetés avec n’importe quelle étiquette du groupe_etiquette, exclus

created-by:@NOMUTILISATEUR sujets créés par un utilisateur spécifique

posts-min:X sujets avec X publications ou plus
posts-max:X sujets avec au maximum X publications
posters-min:X sujets où au moins X utilisateurs différents ont posté
posters-max:X sujets où au plus X utilisateurs différents ont posté
likes-min:X sujets avec X likes ou plus
likes-max:X sujets avec au maximum X likes
likes-op-min:X sujets dont le premier message a X likes ou plus
likes-op-max:X sujets dont le premier message a au maximum X likes
views-min:X sujets avec X vues ou plus
views-max:X sujets avec au maximum X vues

activity-before:YYYY-MM-DD sujets dont la dernière activité est antérieure à la date spécifiée
activity-after:YYYY-MM-DD sujets dont la dernière activité est postérieure à la date spécifiée
created-before:YYYY-MM-DD créés avant la date spécifiée
created-after:YYYY-MM-DD créés après la date spécifiée
latest-post-before:YYYY-MM-DD dernier message créé avant la date spécifiée
latest-post-after:YYYY-MM-DD dernier message créé après la date spécifiée

order:activity trier par date de dernière activité décroissante
order:latest-post trier par date de création du dernier message décroissante
order:created trier par date de création du sujet décroissante
order:views trier par nombre de vues décroissant
order:likes trier par nombre de likes dans le sujet décroissant
order:likes-op trier par nombre de likes dans le premier message de chaque sujet décroissant
order:posters trier par nombre d’auteurs différents décroissant
order:category trier par nom de catégorie
order:ANY-asc inverser l’ordre des résultats pour qu’il soit ascendant

Retour d’information

Nous aimerions savoir de la communauté si cette fonctionnalité sera précieuse pour votre propre communauté et nous aimerions également savoir comment vous l’utilisez.

S’il y a des filtres qui, selon vous, vous aideront à répondre à vos besoins, n’hésitez pas à nous en faire part, avec des exemples de ce que vous essayez de faire.

Enfin, nous tenons à souligner qu’il s’agit d’une version très précoce de la fonctionnalité et qu’elle est encore considérée comme expérimentale à ce stade. L’expérience utilisateur nécessite des améliorations et nous travaillons actuellement à l’ajout d’une sorte d’autocomplétion en ligne, voire d’une interface permettant aux utilisateurs de construire un langage de requête de filtrage de sujets sans avoir à mémoriser tous les filtres.

33 « J'aime »

Qu’est-ce que j’ai manqué… ?
Il ne semble pas qu’il renvoie des sujets de la catégorie Bug tagués à la fois chat et pri-high.

2 « J'aime »

Je ne pense pas que vous devriez pouvoir voir les balises de priorité. Elles sont juste pour nous. :shushing_face: :slight_smile:

Est-ce que ça fonctionne si vous ne l’incluez pas ?

3 « J'aime »


On dirait que si j’enlève cette balise, ça ne fonctionne pas non plus.


mise à jour : l’“alias” fonctionne parfaitement.

2 « J'aime »

Désolé, je viens de réaliser que ma PR pour ajouter la prise en charge de l’alias tag: n’a pas été fusionnée.

Elle a maintenant été fusionnée, donc l’alias tag: devrait fonctionner bientôt.

6 « J'aime »

Un autre problème : le filtre tags ne prend actuellement pas en charge les caractères non-ASCII, tels que le chinois.

Exemple : tags:一个不存在的标签 renvoie tous les sujets, mais tags:a-non-existent-tag ne renvoie rien, comme prévu.


J’ai vérifié le code source, la cause est

    value.scan(
        /\A(?<tag_names>([a-zA-Z0-9\-]+)(?<delimiter>[,+])?([a-zA-Z0-9\-]+)?(\k<delimiter>[a-zA-Z0-9\-]+)*)\z/,
5 « J'aime »

Félicitations pour le bon travail @tgxworld. Cela ouvre de multiples possibilités.

Je suis juste curieux de savoir si cela pourrait fournir une option de filtrage contextuel ?

Par exemple. Si je sélectionne la catégorie des annonces dans la barre latérale, pouvons-nous afficher le panneau de filtre (celui que vous avez créé) en haut pour filtrer par plusieurs balises (chat, nouvelle fonctionnalité) au sein de la catégorie.

Actuellement, on ne peut pas filtrer par plusieurs balises en tant qu’utilisateur final de manière intuitive - manuellement, nous devons utiliser le point de terminaison /tags/interesection/chat/new-feature. Les utilisateurs finaux peuvent ne pas être conscients de cette possibilité, surtout pour le faire au sein d’une catégorie.

5 « J'aime »

Bonne remarque. J’ai une correction pour les tags dans

Le filtre category nécessitera une correction similaire, mais c’est un peu plus compliqué. Je devrais l’avoir terminée d’ici la semaine prochaine.

5 « J'aime »

Il manque une chaîne de traduction lorsqu’un nouveau sujet apparaît dans /filter :

[fr.topic_count_all count=1]

4 « J'aime »

La fonctionnalité semble solide et aidera certainement à créer des flux de sujets meilleurs et personnalisés pour nos utilisateurs ! Merci !

Pendant ce temps, j’ai une question : cette fonctionnalité nous permet-elle d’intégrer les derniers articles de plusieurs sujets au sein de catégories/balises spécifiques ?

1 « J'aime »

Non, je ne pense pas que cela fasse partie du plan actuel.

Si vous essayez la fonctionnalité actuelle telle quelle et que vous trouvez toujours que c’est quelque chose que vous aimeriez pouvoir faire, pouvez-vous créer un nouveau sujet à ce sujet avec un peu plus de détails sur ce que vous avez en tête ?

1 « J'aime »

Merci pour cette fonctionnalité très utile !

Serait-il possible d’ajouter également created-by:me ou quelque chose de similaire qui filtre automatiquement les sujets créés par l’utilisateur actuel ? Ce serait bien sûr similaire à /my/activity/topics, mais cela pourrait être utile pour combiner avec d’autres filtres et l’ajouter à la barre latérale pour tous les utilisateurs.

Et qu’en est-il d’un filtre in:participated pour tous les sujets dans lesquels j’ai posté, quel que soit leur réglage de suivi/notification ?

5 « J'aime »

C’est super ! :pray: J’aimerais aussi avoir un support pour status:unsolved. Je pense aussi que ce serait génial si nous pouvions construire un filtre avec quelque chose comme assigned:me afin que le résultat soit différent, en fonction de l’utilisateur. Cas d’utilisation : un bot qui envoie des messages à nos modérateurs avec des liens sur lesquels ils peuvent cliquer pour afficher leurs sujets assignés. Ce serait pratique pour que nous puissions avoir un message générique envoyé à tous les modérateurs avec des liens vers toutes les requêtes auxquelles ils doivent se référer lors de la modération du forum. Évidemment, ils peuvent naviguer vers les sujets assignés facilement depuis l’interface web, mais je pense que ce serait une petite amélioration de la qualité de vie s’ils pouvaient cliquer sur un lien ou le mettre en favori.

4 « J'aime »

Il existe des précédents pour ce genre de choses dans la fonctionnalité actuelle, je pense donc que nous pouvons certainement envisager d’autres choses comme celles-ci :

3 « J'aime »

Salut,

Quelqu’un peut-il me dire si c’est dans la version publique ou une sorte de bêta ? Je n’ai pas trouvé le paramètre.

Salut Tony :wave:

Votre instance est-elle à jour ?

J’ai le réglage sur mon forum de test :

Il est également disponible sur les forums hébergés par Discourse, pas seulement auto-hébergés.

Comme indiqué, c’est « expérimental », ce qui signifie qu’il y aura beaucoup de changements au fil du temps, et qu’il faut s’attendre à des bugs ou des incohérences.

1 « J'aime »

Je trouve déjà cela très utile pour expliquer les fonctionnalités de base de Discourse aux responsables de communauté qui découvrent la plateforme. À savoir : Nous avons une collection de sujets et nous pouvons les filtrer et les trier de nombreuses manières.

Jusqu’à présent, ces filtres étaient répartis dans l’interface, mais la route des filtres offre un lieu central pour accéder et comprendre les options disponibles :

Dans cette optique, je trouverais utile d’inclure deux options supplémentaires :

  • Dans la section Date, filtrer également par temps relatif (dernière semaine, mois, année, etc.)
  • Dans la section Trier, trier également par popularité (ce qui est différent du nombre de “likes”)
5 « J'aime »

J’aime cette fonctionnalité. J’aimerais cependant pouvoir rechercher uniquement du texte brut. Parfois, j’ai besoin de trouver un sujet supprimé mais je ne sais pas quel utilisateur l’a créé, donc je dois en parcourir un bon nombre avant de le trouver au lieu de pouvoir simplement rechercher dans les éléments supprimés avec un ou des mots-clés.

Je pense que l’objectif est de connecter cela à la recherche à un moment donné dans le futur pour une parité, bien que je craigne qu’il n’y ait pas de calendrier définitif à ce sujet.

3 « J'aime »

Pouvez-vous trier / ordonner le résultat par nombre de réponses ou par nombre de votes ? J’espérais utiliser cela pour lister les demandes de fonctionnalités ordonnées par intérêt communautaire, tout en filtrant celles étiquetées comme « implémentées ». Cependant, cela ne semble pas être une option.

Mon cas d’utilisation est décrit plus en détail ici.

2 « J'aime »