Je sélectionne des documents avec un boucle #list ; dans chaque ligne générée
par cette boucle #list se trouve l'identifiant d'un autre document dont je veux
extraire une ou plusieurs informations que j'aimerais afficher sur la même ligne
de tableau que les infos venant de #list.
Exemple : dans un document, j'ai :
- date
- inputNature
- amount
- key => l'identifiant d'un autre document
- comment
Je génère la liste de documents avec :
{{#list
select="
$$.date AS 'Date' ;
$$.inputNature AS 'Type' ;
$$.amount AS 'Nombre' ;
=> titre du champ provenant du document récupéré par #load
"" AS 'Matériel' ;
$$.comment AS 'Remarques'"
type="movement"
direction="entrée"
order=1}}
puis je récupère le document associé à la clé avec
{{#load type="equipment" key=$equipment assign="equipment"}}
et j'affiche le tout ainsi :
<tr>
<td>{{$date|date_short}}</td>
<td>{{$inputNature}}</td>
<td>{{$amount}}</td>
=> ici, le champ designation vient du document récupéré par #load
<td>{{$designation}}</td>
<td>{{$comment}}</td>
<td class="actions">
{{:linkbutton label="Supprimer" ...}}
</td>
</tr>
L'affichage est correct, les tris fonctionnent sauf le tri sur le champ
provenant du document récupéré par #load.
Est-ce qu'il y a moyen d'avoir le tri sur cette colonne ?
"list" ne fait que créer une requête SQL, donc tu peux sélectionner
depuis une sous-requête qui renvoie à ta propre table si tu veux.
Par contre il manquait quelques trucs pour que ça soit pratique à
faire. Car j'ai eu le même besoin il y a quelques jours.
Je viens de rajouter :
https://fossil.kd2.org/paheko/info/da7020196daca8df
Qui permet de mentionner une table dans la syntaxe raccourcie
'$$.blabla' : '$table$.blabla'
Et d'utiliser @TABLE pour le nom de la table du module.
Du coup dans 1.3.1 tu pourra faire ceci :
{{#list
select="
$$.date AS 'Date' ;
$$.inputNature AS 'Type' ;
$$.amount AS 'Nombre' ;
(SELECT $$.designation
FROM @TABLE AS b
WHERE b.$$.equipment = @TABLE.$$.equipment)
AS 'Matériel' ;
$$.comment AS 'Remarques'"
type="movement"
direction="entrée"
order=1}}