Badges et communautés privées

Je comprends, d’après les discussions précédentes de début 2017, que les badges ne fonctionnent pas pour les groupes restreints.

Nous cherchons à savoir s’il existe une solution pour contourner cette limitation. Voici un peu de contexte.

Notre groupe est accessible à 99,9 % uniquement par les personnes ayant le rôle de « Membres ». Nous avons quelques groupes ouverts à tous pour des discussions publiques ou de l’aide/du support. En tant que groupe payant, il serait formidable de pouvoir reconnaître l’activité au sein de ces groupes privés, car sur nos 1,3 million de publications, la plupart se trouvent dans ces regroupements.

Existe-t-il une solution de contournement ou une configuration permettant cela ?

4 « J'aime »

La raison en est que tous les badges faisant référence à des publications exécutent leurs requêtes sur la table badge_posts. Cette table ne contient que les publications appartenant à des catégories accessibles à tous les utilisateurs.

Oui, je vois bien que cela pourrait poser problème. Une solution de contournement possible consisterait à réécrire les requêtes de vos badges pour utiliser la table posts au lieu de la table badge_posts. Cela poserait un problème pour les utilisateurs qui n’ont pas accès aux catégories protégées de votre site s’ils tentaient de consulter les publications associées aux badges de votre utilisateur, mais il semble que cela n’affecterait pas beaucoup d’utilisateurs sur votre site. Il existe peut-être d’autres façons de gérer cela.

7 « J'aime »

Honnêtement, pour nos besoins, je pense que cela serait tout à fait acceptable.

Est-ce quelque chose de simple ? Ou cela poserait-il problème à long terme ?

1 « J'aime »

Modifier les requêtes de badges sur votre site pour utiliser la table posts au lieu de la table badge_posts serait assez simple. Cependant, une correction appropriée du problème pourrait nécessiter un changement plus important. Par exemple, vous ne voudriez pas que des badges soient attribués pour des publications dans votre catégorie du personnel, ou pour toute autre catégorie où il y a un risque de fuite du titre d’un sujet.

Je me demande si une nouvelle vue Postgres pourrait être ajoutée via un plugin pour les sites ayant une configuration similaire à la vôtre. Cette vue pourrait ensuite être substituée dans les requêtes de badges à la vue badge_posts.

4 « J'aime »

Ok, j’aime bien cette théorie.

Si cette option était disponible, cette vue pourrait-elle inclure des publications issues uniquement de groupes publics ? Comme nous en avons déjà, plus tout groupe visible par un groupe spécifique ? Dans notre cas, « Membres ».

Ce serait la solution ultime pour les groupes d’adhésion !

2 « J'aime »

Voyons ce que les ingénieurs de Discourse pensent de cette approche, ou s’ils ont d’autres suggestions. Ce n’est pas la première fois que ce problème est signalé. Il serait bon de trouver une solution générale, mais une solution efficace pour de nombreux sites pourrait être plus complexe que ce que je propose.

4 « J'aime »

Pas fan du changement de vue.

Ma recommandation ici @Mitchelsellers, c’est de commencer petit. Décernez les badges sans mentionner de publications spécifiques.

[a publié vingt posts très appréciés en tant que membre] (titre à définir) est un bon point de départ.

En gros, trouvez un moyen personnalisé de reconnaissance avec des requêtes personnalisées.

Ajouter des vérifications de permissions partout où nous lierions les badges aux publications est compliqué, je déconseille de prendre cette voie.

Commencez petit et facile.

5 « J'aime »

Je pense que cela serait tout à fait acceptable pour nous aussi.

Avez-vous de bons conseils pour faire cela ?

1 « J'aime »

Je suppose que l’étape 0 ici consiste à esquisser en anglais les badges que vous souhaitez, les noms des badges et leur définition conceptuelle.

3 « J'aime »

D’accord, nous nous mettons au travail sur ce sujet !

1 « J'aime »

J’ai examiné les requêtes de badges existantes pour comprendre quelles requêtes ciblent les publications dans la table badge_posts, ou utilisent une autre méthode pour exclure les publications des catégories protégées.

Les badges suivants requêtent des publications spécifiques et ne seront pas attribués pour une activité dans des catégories privées :

  • Éditeur
  • Premier drapeau
  • Premier like
  • Premier lien
  • Premier citation
  • Premier partage
  • Premier emoji
  • Premier mention
  • Premier onebox
  • Premier reply par e-mail
  • Lecteur
  • Éditeur wiki
  • Super partage
  • Bon partage
  • Helpdesk
  • Partage sympa
  • Bienvenue
  • Lien célèbre
  • Super réponse
  • Super sujet
  • Bonne réponse
  • Bon sujet
  • Lien chaud
  • Réponse sympa
  • Sujet sympa
  • Lien populaire

Les badges suivants ne requêtent pas de publications spécifiques et seront attribués pour une activité dans des catégories privées :

  • Licencié
  • Autobiographe
  • Certifié
  • Nouvel utilisateur du mois
  • Lire les directives
  • Admiré
  • Champion
  • Fou amoureux
  • Dévot
  • Empathique
  • Afficionado
  • Anniversaire
  • Campagneur
  • Donne de soi
  • Amour supérieur
  • Respecté
  • Apprécié
  • Enthousiaste
  • Hors de l’amour
  • Promoteur
  • Merci
  • Leader
  • Régulier
  • Basique
  • Membre
  • Personnel
  • Photo de profil

Quelque chose de similaire est déjà couvert par les badges Apprécié (1 like sur 20 publications) et Respecté (2 likes sur 100 publications). Certaines variations de ces requêtes pourraient être ajoutées. Par exemple, 10 likes sur 20 publications. Un badge accordé pour des sujets très aimés pourrait également être une bonne idée — il fonctionnerait comme l’équivalent du badge Super sujets. Par exemple, il pourrait être attribué lorsqu’un utilisateur a créé 10 sujets ayant reçu 10 likes.

Je ne suis pas sûr qu’il soit logique d’ajouter un badge attribué pour une activité sur une seule publication ou un seul sujet qui ne contient pas de lien vers la publication. Par exemple, un badge Premier like alternatif pourrait être créé avec le SQL suivant :

SELECT pa1.user_id, pa1.created_at granted_at
FROM (
  SELECT pa.user_id, min(pa.id) id
  FROM post_actions pa
  JOIN posts p on p.id = pa.post_id
  WHERE post_action_type_id = 2
  GROUP BY pa.user_id
) x
JOIN post_actions pa1 on pa1.id = x.id

Pour que la requête fonctionne, elle doit utiliser le déclencheur « Mettre à jour quotidiennement » au lieu de la requête « Lorsqu’un utilisateur agit sur une publication ». Sur la page Badges, les utilisateurs ayant reçu le badge seront affichés avec l’heure à laquelle le badge a été attribué. Il n’y aura pas de lien vers la publication pour laquelle le badge a été attribué :

Ce genre d’approche a-t-il du sens pour les sites comportant principalement des catégories protégées ? Si oui, cela pourrait être utilisé pour dupliquer certaines des requêtes ciblant actuellement la table badge_posts.

4 « J'aime »

Je pense que c’est une excellente initiative !

Je voulais juste revenir sur ce point.

Des idées sur la mise en œuvre de ce genre de chose ?

Merci de m’en avoir rappelé ! Je vais commencer à compiler une liste de badges que je pense utiles et qui n’exposent aucun message provenant de catégories protégées.

2 « J'aime »

Nous avons lancé notre forum avec l’exigence de connexion requise et avons récemment ajouté quelques catégories publiques, tout en restreignant l’accès aux catégories existantes au niveau de confiance 0.

Ainsi, pour les utilisateurs existants, rien n’a changé dans leur façon d’accéder au forum, mais tous les badges de la liste ci-dessus ont été révoqués. Notre forum n’est pas très grand, mais d’après les retours que nous avons reçus des utilisateurs, il est clair que le système de badges semble totalement cassé. Avec cette configuration, je dois pratiquement le désactiver.

Je pense qu’il faudrait communiquer plus clairement quelque part dans les paramètres que les badges existants seront révoqués lorsque vous optez pour la restriction des catégories. Pour nous, cela est arrivé complètement à l’improviste.

Plus généralement, je ne comprends pas les priorités. Les permissions des catégories et le système de badges sont présentés comme des fonctionnalités centrales de Discourse. Pourtant, il est difficile de les utiliser ensemble tel qu’ils sont. L’avantage d’afficher les badges uniquement sur les posts généralement accessibles semble être que les autres utilisateurs peuvent voir pour quel post un badge a été décerné ? Pour moi, cela ne semble pas être une fonctionnalité aussi importante en comparaison. Pourquoi ne pas plutôt supprimer ces liens visibles et ne révéler les posts liés qu’à chaque utilisateur dans leurs propres badges ?

3 « J'aime »

Aïe ! OK, cela signifie que toute l’infrastructure des badges est plutôt inutile dans une communauté avec beaucoup d’espaces privés…

Je suis d’accord.

Existe-t-il une sorte de plugin ou de nouveaux paramètres (au cours des six dernières années) pour rendre les badges viables dans une communauté majoritairement privée ?

2 « J'aime »

Je suis favorable à l’amélioration du fonctionnement par défaut.

Bien que ce sujet soit resté discret pendant de nombreuses années, j’ai entendu des gens demander des changements similaires ailleurs.

Il s’agit juste de déterminer quel changement particulier est nécessaire et de déterminer où il se situe parmi les autres priorités.

3 « J'aime »

:flexed_biceps:

Cela semble lié à ce qui a été soulevé dans un autre sujet concernant la facilitation de l’orientation des membres de la communauté entre les espaces ouverts (publics) et fermés (degrés variables de « privé »), y compris les messages personnels.

Gérer la nature semi-publique du web et les audiences semi-chevauchantes est un défi majeur dans le monde social en ligne. Ce n’est pas intuitif. La plupart des communautés auront du mal à faire en sorte que les gens comprennent à quel point différentes parties sont publiques/privées. Il pourrait être judicieux que Discourse suppose que ce mélange de public et de privé(s) sera la norme pour la plupart des communautés et voie comment il peut faciliter la navigation pour les membres de la communauté ?

1 « J'aime »

Je suis nouveau dans cette conversation, mais je pense qu’un interrupteur sous les Paramètres des Badges serait le plus simple. Laissez-le désactivé par défaut, cochez-le pour interroger tous les forums (y compris les privés) pour les badges d’engagement.

S’il est laissé ouvert pour un crochet qu’un plugin/composant pourrait utiliser, on pourrait plus tard ajouter une permission par catégorie pour que les badges y soient comptés.

2 « J'aime »

Je pense que le problème avec les badges qui ne sont actuellement accordés que sur des catégories publiques est qu’ils font référence au message dans le sujet pour lequel ils ont été accordés, et vous ne voudriez pas que cela soit public si le sujet est privé.

Par conséquent, la partie où le message est lié dans ce badge devrait être supprimée de tous ces badges par défaut.

3 « J'aime »