Param déroulant pour group_id dans la requête data explorer

J’aimerais pouvoir spécifier quelque chose comme ceci :

-- [params]
-- groups.id :group_id

pour obtenir une saisie de paramètre qui soit une liste déroulante de groupes. J’ai nommé la valeur group_id ici car je suppose que c’est ce qu’un tel menu déroulant me donnerait.

4 « J'aime »

Je pense que ce serait aussi très utile. :+1: Quelque chose comme le paramètre sélectionnable user_id existant, mais pour les groupes. Encore mieux si cela pouvait accepter plusieurs valeurs. :slight_smile:

4 « J'aime »

Attendez, quoi ?

Pouvez-vous m’indiquer où il est montré comment l’utiliser ?

1 « J'aime »

Vous pouvez utiliser quelque chose comme ceci :

-- [params]
-- user_id :user

SELECT *
FROM posts
WHERE user_id =:user
LIMIT 5

Et cela fera apparaître une liste déroulante où vous pourrez compléter automatiquement un utilisateur. :+1:

Cependant, je viens de remarquer que la première fois que vous l’exécutez, cela génère une erreur et n’affiche pas la boîte de paramètres, mais cela fonctionne si vous actualisez la page. Je vais voir si je peux demander à quelqu’un de vérifier cela. :slight_smile:

4 « J'aime »

Demandez (et attendez) et vous recevrez… nous venons d’ajouter la prise en charge d’un paramètre :group_list dans cette PR.

Voici un exemple de la fonctionnalité en cours d’utilisation :

-- [params]
-- group_list :groups

SELECT g.id,g.name
FROM groups g
WHERE g.name IN (:groups)
ORDER BY g.name ASC

Cela devrait vous donner ce qui suit dans l’interface utilisateur :

8 « J'aime »

C’est super. :star_struck: J’ai hâte de mettre cela en pratique. :rocket:

3 « J'aime »

Mon sujet a été fermé avant que je puisse y répondre…

Existe-t-il un moyen de limiter le nouveau type de paramètre -- group_list à un seul groupe ? Je l’ai intégré dans nos rapports existants, mais ils sont tous écrits en attendant un nom de groupe unique et lors des tests, je me suis souvent trompé.

Je l’ai rouvert et l’ai glissé par-dessus. :+1:

Cependant, je ne suis pas sûr de ce que vous voulez dire ? Pouvez-vous donner un exemple de ce qu’est le problème ?

1 « J'aime »

Je veux dire que j’exécute la requête pour mon premier groupe. Puis, lorsque je veux changer de groupe, j’ajoute un groupe à la place - > erreur

1 « J'aime »

Oooh. C’est intéressant. Je l’ai utilisé davantage comme ceci :


WHERE g.name IN (:groups)

Cacher un peu de Jammy Stupid

WHERE g.id IN (:groups)

Bien que cela vous permette toujours d’en mettre accidentellement plus d’un, même si vous évitez l’erreur. :thinking:

Je préférerais avoir l’erreur plutôt qu’une sélection aléatoire dans la liste :slight_smile:

1 « J'aime »

Pour être honnête, je viens de vérifier et je pense que j’ai dû rêver que je l’utilisais pour group_ids car il n’aime pas du tout ça. Je vais rayer cela des registres. :slight_smile: Aucune idée d’où m’est venue cette idée. J’aurais juré que je l’avais utilisé l’autre jour. :derp:

1 « J'aime »

Au fait, j’ai complètement oublié de dire :

C’est fabuleux !!! :confetti_ball: Merci !!! :tada:

3 « J'aime »

Non, il n’y a aucun moyen de le limiter à un seul groupe. Pas à ma connaissance.

Le paramètre de group_list sera un tableau s’il y a plus d’un élément sélectionné et une chaîne de caractères si un seul élément est sélectionné.

Donc, lorsqu’il n’y a qu’un seul élément, vous pouvez faire ceci :

-- [params]
-- group_list :groups

SELECT g.id,g.name 
FROM groups g 
WHERE g.name = :groups 
ORDER BY g.name ASC

Mais comme il s’agit d’un tableau, ce qui suit fonctionnera aussi bien pour un seul élément que pour plusieurs :

-- [params]
-- group_list :groups

SELECT g.id,g.name 
FROM groups g 
WHERE g.name IN (:groups)
ORDER BY g.name ASC

Mais il n’y a aucun moyen de dire à l’interface utilisateur « n’accepter qu’un seul élément comme sélection ».

1 « J'aime »

Les documents de @saradev ici Utilizing Parameters in Data Explorer Queries mettent en évidence la liste complète des paramètres pour l’explorateur de données qui ont parfois une liste déroulante, et parfois non. (Liste des paramètres sur Github)

Voici un tableau des paramètres, indiquant également s’il existe un contrôle spécifique pour eux.

param liste déroulante disponible
int :white_check_mark:
bigint :white_check_mark:
boolean :white_check_mark:
null boolean :white_check_mark:
string :white_check_mark:
date
time
datetime
double :white_check_mark:
user_id :white_check_mark:
post_id
topic_id
string_list
category_id
group_id
int_list
string_list
user_list :white_check_mark:
group_list :white_check_mark:

Idéalement, les listes déroulantes utilisées et affichées dans l’explorateur de données auraient un aspect similaire à celui de l’application principale. Voyons comment nous pouvons y parvenir.

6 « J'aime »

Nous avons récemment repensé toute la boîte de saisie des paramètres. La plupart des types ont leurs propres listes déroulantes et prennent désormais en charge la validation avec des invites d’erreur sémantiques. :chefs_kiss:


Voici le dernier tableau des paramètres indiquant s’il existe un contrôle spécifique pour chacun.

paramètre liste déroulante disponible
int :white_check_mark:
bigint :white_check_mark:
boolean :white_check_mark:
null boolean :white_check_mark:
string :white_check_mark:
date :white_check_mark:
time :white_check_mark:
datetime :white_check_mark:
double :white_check_mark:
user_id :white_check_mark:
post_id
topic_id
category_id :white_check_mark:
group_id :white_check_mark:
int_list
string_list
user_list :white_check_mark:
group_list :white_check_mark:

@ganncamp Vous voudrez peut-être être informé de ce changement :wink:

9 « J'aime »

Pouvez-vous expliquer comment ces menus déroulants fonctionnent ? Pour moi, je n’ai pas réussi à obtenir un menu déroulant où je peux définir une liste de chaînes de caractères disponibles dans ce menu.

1 « J'aime »

@jordan-violet une réponse tardive, mais @SaraDev a rédigé un article ici sur les paramètres disponibles, et le fil de discussion a été mis à jour par Linca :

2 « J'aime »