Widget - Recherche multi trackers

Prev Next

Le widget Recherche multi trackers vous permet d'effectuer des recherches sur des artifacts issus de plusieurs trackers et de plusieurs projets simultanément, directement depuis votre tableau de bord. Il repose entièrement sur le langage de requêtes TQL (Tuleap Query Language) pour sélectionner les colonnes à afficher, définir les sources de données et filtrer les résultats.

C'est un outil idéal pour obtenir des vues transversales sur votre activité : suivi de vos artifacts assignés à travers plusieurs projets, reporting multi-trackers, consolidation d'informations, etc.

Note d’installation

Ce widget est disponible sur les Tableaux de bord projet et sur le Tableau de bord personnel. Son comportement diffère légèrement selon le contexte (voir la section Différences entre tableau de bord projet et personnel).
Également, le plugin Cross Tracker Search doit être installé et activé par l'administrateur de la plateforme.

Créer une requête

Le widget fonctionne entièrement via des requêtes écrites en TQL. Une requête se compose de quatre clauses :

  • SELECT — les colonnes à afficher dans le tableau de résultats

  • FROM — les projets et trackers à interroger

  • WHERE — les conditions de filtrage des artifacts

  • ORDER BY (optionnel) — le tri des résultats

Attention

Vous devez disposer d'un droit de lecture sur les trackers que vous souhaitez interroger.

Écrire une requête

Lors de la première utilisation, ou lorsque vous créez une nouvelle requête, le widget vous présente un éditeur de texte TQL. Saisissez directement votre requête dans cet éditeur.

Exemple de requête sur un tableau de bord projet :

SELECT @pretty_title, @status, @last_update_date, @submitted_by
FROM @project = 'self'
WHERE @status = OPEN()
ORDER BY @last_update_date DESC

Exemple de requête sur un tableau de bord personnel :

SELECT @pretty_title, @project.name, @last_update_date, @submitted_by
FROM @project = MY_PROJECTS()
WHERE @assigned_to = MYSELF() AND @status = OPEN()
ORDER BY @last_update_date DESC

Info

L'éditeur TQL propose la coloration syntaxique et l'auto-complétion (Ctrl+Espace) pour vous aider à construire vos requêtes. Vous pouvez également utiliser Ctrl+Entrée pour lancer une recherche (prévisualisation) sans quitter l'éditeur. Pour une référence complète de la syntaxe TQL utilisable dans ce widget, consultez la documentation officielle : TQL in Cross-Tracker Search.

Utiliser les suggestions de requêtes

Lors de la création d'une nouvelle requête, le widget propose des suggestions de requêtes prédéfinies. Ces suggestions sont adaptées au contexte du tableau de bord :

Sur un tableau de bord projet, trois suggestions sont disponibles :

  • Tous les artifacts ouverts — Affiche tous les artifacts ouverts du projet en cours.

  • Les artifacts ouverts qui me sont assignés — Filtre sur les artifacts ouverts et assignés à l'utilisateur connecté.

  • Tous les artifacts créés ces 10 derniers jours — Affiche les artifacts récemment créés dans le projet.

Sur le tableau de bord personnel, une suggestion est disponible :

  • Les artifacts ouverts qui me sont assignés dans mes projets — Affiche les artifacts ouverts et assignés à l'utilisateur connecté, provenant de l'ensemble des projets dont il est membre.

Cliquez sur la suggestion souhaitée pour pré-remplir l'éditeur avec la requête correspondante. Vous pouvez ensuite l'adapter à vos besoins avant de l'enregistrer.

Enregistrer une requête

Une fois votre requête rédigée :

  1. Renseignez un titre (obligatoire) dans le champ Nommer votre requête pour identifier facilement cette requête.

  2. Ajoutez une description (optionnel) dans le champ Écrire votre description pour préciser l'objectif de la requête.

  3. Si vous le souhaitez, activez l'option Afficher cette requête par défaut pour que cette requête soit présentée automatiquement à l'ouverture du widget.

  4. Cliquez sur Sauvegarder.

Le widget prend en charge l'enregistrement de plusieurs requêtes par instance de widget. Vous pouvez naviguer entre vos requêtes enregistrées pour consulter différentes vues.

Modifier une requête

  1. Cliquez sur le bouton Détails de la requête.

  2. Cliquez directement sur la requête affichée ou sur le bouton Éditer.

  3. Modifiez le titre, la description ou la requête TQL.

  4. Vous pouvez cliquer sur Rechercher pour prévisualiser les résultats de la requête modifiée sans la sauvegarder.

  5. Cliquez sur Sauvegarder pour valider les modifications, ou sur Annuler pour revenir à la requête sans sauvegarder vos changements.

Information

Seuls les utilisateurs ayant le droit de modification du tableau de bord (administrateurs du projet pour un tableau de bord projet, ou l'utilisateur propriétaire pour un tableau de bord personnel) peuvent créer, éditer ou supprimer des requêtes. Les autres utilisateurs ne voient que les résultats en lecture seule.

Supprimer une requête

  1. Cliquez sur le bouton Détails de la requête.

  2. Cliquez sur le bouton Supprimer.

  3. Une fenêtre de confirmation s'affiche. Confirmez la suppression.

Attention

La suppression d'une requête est définitive. Les autres utilisateurs du tableau de bord n'y auront plus accès.

Consulter et naviguer entre les requêtes

Par défaut, le widget affiche directement les résultats de la requête active (la requête par défaut, ou la première requête enregistrée). Pour accéder aux détails d'une requête :

  1. Cliquez sur le bouton Détails de la requête.

  2. Le panneau de détails s'ouvre, affichant le titre, la description et la requête TQL associée.

Également, pour naviguer d’une requête à l’autre :

  1. Cliquez sur Choisir une autre requête. Un menu déroulant s'affiche avec la liste de toutes les requêtes enregistrées pour ce widget.

  2. Utilisez le champ de recherche intégré au menu pour filtrer les requêtes par titre si la liste est longue.

Info

Si vous êtes administrateur du tableau de bord et qu'aucune requête n'existe encore, le widget affiche automatiquement le panneau de création de requête. Les utilisateurs en lecture seule verront un état vide.

Tableau de résultats

Pagination

Les résultats sont affichés par pages de 50 artifacts maximum. Si votre requête retourne plus de 50 résultats, des boutons Précédent et Suivant apparaissent en bas du tableau pour naviguer entre les pages.

Accès direct à un artifact

Chaque ligne du tableau de résultats comporte une icône permettant d'ouvrir l'artifact dans son tracker d'origine. Cliquez sur cette icône pour accéder à la page de détail de l'artifact.

Astuce

Survolez les cellules de type titre ou texte pour afficher un tooltip avec le contenu complet, utile lorsque le texte est tronqué dans la colonne.

Liens entre artifacts

Lorsque les artifacts affichés possèdent des liens (parent/enfant, couverture de test, etc.), le widget peut afficher ces relations sous forme de flèches visuelles et d'informations de type de lien. Vous pouvez déplier les liens d'un artifact pour en voir les détails.

Colonnes affichées

Les colonnes du tableau sont déterminées par la clause SELECT de votre requête TQL. Consultez la documentation TQL SELECT pour la liste complète des colonnes disponibles (sémantiques, champs dynamiques, champs personnalisés, etc.).

Export XLSX

Vous pouvez exporter les résultats d’une requête enregistrée au format XLSX (Excel).

Lorsque vous cliquez sur le bouton Export XLSX, deux modes d'export vous sont proposés si les résultats s'étendent sur plusieurs pages :

  • Tout exporter — Exporte l'intégralité des artifacts correspondant à la requête (toutes les pages), sans les liens entre artifacts. C'est le mode le plus courant pour obtenir un export complet.

  • Exporter avec les liens — Exporte uniquement les artifacts de la page en cours, accompagnés de leurs liens (liens directs et liens inverses) visibles dans le widget. Ce mode est utile pour conserver les relations entre artifacts dans votre export.

Attention

Seuls certains types de champs peuvent être exportés en XLSX :

  • Champs de type texte (String, Text)

  • Champs numériques (Integer, Float)

  • Champs de date (avec ou sans heure)

  • Listes à sélection simple (Selectbox, Radio button)

Les listes à sélection multiple (Multi-selectbox, Checkbox) et les autres types de champs ne sont pas encore pris en charge et seront ignorés lors de l'export.

Différences entre tableau de bord projet et personnel

Le widget Recherche multi trackers est disponible dans les deux contextes de tableau de bord, mais son comportement diffère sur plusieurs points.

Clause FROM : sélection des projets et trackers

La différence principale concerne la manière de cibler les projets dans la clause FROM de vos requêtes TQL :

Tableau de bord projet :

  • @project = 'self' — Cible le projet courant. C'est la valeur la plus courante dans ce contexte.

  • @project = 'aggregated' — Cible les projets agrégés dans le cas d'un projet de type Programme.

  • @project IN('self', 'aggregated') — Combine le projet courant et ses projets agrégés.

  • @project.name = 'nom_du_projet' — Cible un projet spécifique par son nom court.

  • @project.category = 'Topic::Hardware' — Cible les projets d'une catégorie donnée.

Tableau de bord personnel :

  • @project = MY_PROJECTS() — Cible l'ensemble des projets dont vous êtes membre. C'est la valeur la plus courante dans ce contexte.

  • @project.name = 'nom_du_projet' — Cible un projet spécifique par son nom court.

  • @project.category = 'Topic::Hardware' — Cible les projets d'une catégorie donnée.

Attention

@project = 'self' et @project = 'aggregated' ne sont pas utilisables sur le tableau de bord personnel (une erreur sera affichée). Inversement, sur un tableau de bord projet, la condition projet est facultative dans FROM : si elle est absente, la requête ciblera implicitement le projet courant.

Info

Sur le tableau de bord personnel, la condition projet est obligatoire dans la clause FROM. Pour plus de détails, consultez la documentation TQL FROM.

Suggestions de requêtes

Les suggestions proposées sont adaptées au contexte :

  • Projet : les suggestions utilisent @project = 'self' pour rester dans le périmètre du projet.

  • Personnel : les suggestions utilisent @project = MY_PROJECTS() et incluent la colonne @project.name pour identifier la provenance des artifacts.

Colonnes recommandées

Sur un tableau de bord personnel, il est recommandé d'inclure @project.name dans votre clause SELECT afin d'identifier facilement de quel projet provient chaque artifact, puisque les résultats proviennent potentiellement de plusieurs projets.

Cas d'usage courants

Vue consolidée de mes tâches

Sur votre tableau de bord personnel, créez une requête pour voir tous les artifacts qui vous sont assignés à travers vos projets :

SELECT @pretty_title, @project.name, @tracker.name, @status, @last_update_date
FROM @project = MY_PROJECTS()
WHERE @assigned_to = MYSELF() AND @status = OPEN()
ORDER BY @last_update_date DESC

Suivi des tickets d'un projet support

Sur le tableau de bord d'un projet, suivez les tickets ouverts d'un tracker spécifique :

SELECT @pretty_title, @status, @assigned_to, @submitted_by, @last_update_date
FROM @project = 'self' AND @tracker.name = 'ticket'
WHERE @status = OPEN()
ORDER BY @last_update_date DESC

Recherche multi-projets par catégorie

Interrogez tous les projets d'une catégorie donnée pour obtenir une vue transversale :

SELECT @pretty_title, @project.name, @status, @assigned_to
FROM @project.category = 'Topic::Team' AND @tracker.name IN('epic', 'story')
WHERE @status = OPEN()
ORDER BY @last_update_date DESC

Recherche d'artifacts liés (parents/enfants)

Utilisez la syntaxe de recherche par liens pour trouver des artifacts en fonction de leurs relations :

SELECT @pretty_title, @status
FROM @project = 'self'
WHERE @status = OPEN() AND WITHOUT PARENT

Info

Pour une référence complète de la syntaxe TQL (conditions, opérateurs, recherche par liens, alias, etc.), consultez la page TQL in Cross-Tracker Search.

Permissions

Le widget distingue deux niveaux d'accès :

Administrateurs du tableau de bord (administrateurs du projet ou propriétaire du tableau de bord personnel) :

  • Créer, éditer et supprimer des requêtes

  • Définir la requête par défaut

  • Toutes les actions de consultation et d'export

Utilisateurs en lecture seule :

  • Consulter les résultats des requêtes enregistrées

  • Naviguer entre les requêtes et les pages de résultats

  • Exporter les résultats en XLSX

  • Accéder aux artifacts depuis le tableau de résultats

Les boutons Éditer, Supprimer et Créer une nouvelle requête ne sont visibles que pour les administrateurs.

Erreurs fréquentes

  • Utilisation de @project = 'self' sur le tableau de bord personnel — Cette syntaxe n'est pas supportée dans un contexte personnel. Utilisez @project = MY_PROJECTS() ou @project.name = 'nom_du_projet' à la place.

  • Utilisation de @project = 'aggregated' hors d'un projet Programme — Cette syntaxe n'est supportée que sur le tableau de bord d'un projet ayant le service Program Management activé.

  • Clause SELECT, FROM ou WHERE manquante — Les trois clauses SELECT, FROM et WHERE sont obligatoires dans une requête Cross-Tracker Search.

  • « Aucun tracker trouvé » — La clause FROM ne correspond à aucun tracker auquel vous avez accès. Vérifiez les noms de projets et de trackers.

Info

Pour la liste complète des erreurs possibles (syntaxe, champs incompatibles, requête trop complexe, etc.), consultez la section Erreurs de la documentation TQL.