Lien direct pour afficher les membres du groupe par ordre décroissant ne fonctionne pas

  • Pour lister les membres d’un groupe, le code backend accepte les paramètres order et asc pour trier par un champ spécifique dans l’ordre ascendant/descendant. Lorsque le paramètre asc est présent et non vide, il s’agit de l’ordre ascendant, sinon de l’ordre descendant.
  • Le code frontend de la page des membres du groupe semble également capable d’analyser les paramètres de requête et de les transmettre au backend. asc est true par défaut côté frontend.

Lorsque je navigue vers ce lien : https://try.discourse.org/g/trust_level_2?order=added_at&asc=, je m’attends à ce que ce soit un lien direct pour me montrer les membres TL2 triés par date d’ajout en ordre descendant, sans avoir à cliquer manuellement sur l’en-tête du tableau pour basculer l’ordre.

Cependant, le comportement réel est le suivant : il affiche les membres TL2 triés par date d’ajout en ordre ascendant, mais avec une icône “chevron-down” (suggérant qu’il aurait dû être affiché en ordre descendant) :

En regardant l’onglet Réseau dans DevTools, la page a émis une requête de https://try.discourse.org/groups/trust_level_2/members.json?offset=0&order=added_at&asc=false&filter=, au lieu de https://try.discourse.org/groups/trust_level_2/members.json?offset=0&order=added_at&asc=&filter=.

Comme tous les paramètres d’URL sont des chaînes de caractères, asc=false sera considéré comme non vide par la logique params[:asc] && params[:asc].present?, retournant ainsi un résultat ascendant. Peut-être que le code frontend devrait convertir la valeur booléenne false de asc en une chaîne vide dans le paramètre d’URL ?

1 « J'aime »