Contexte
Les listes génériques Saturne (view/saturne_list.php) ne proposent aucune synthèse chiffrée : l'utilisateur doit parcourir les lignes pour estimer des totaux. Il manque une mécanique générique réutilisable par tous les modules pour afficher des cartes de KPI au-dessus d'une liste, calculées sur tout le périmètre filtré (et pas seulement la page courante).
Proposition
Ajouter dans Saturne la mécanique générique (le contenu métier restant à la charge de chaque module via le hook printFieldPreListTitle) :
$sqlForList : exposer dans core/tpl/list/objectfields_list_build_sql_select.tpl.php un instantané de la requête filtrée (tous filtres/jointures appliqués) avant tri et pagination.
saturne_get_list_aggregates(DoliDB, string $baseSql, array $aggregates) : enveloppe la requête en sous-requête et calcule des agrégats SQL sur l'ensemble filtré.
saturne_render_kpi_cards(array $cards) : rend une barre de cartes KPI (label / valeur / icône / couleur).
- SCSS : nouveau partial
css/scss/modules/kpi-cards/_kpi-cards.scss (classes .saturne-kpi-* non scopées, cohérent avec filter-panel).
Bénéfice
Tout module Saturne peut afficher des indicateurs synthétiques respectant automatiquement les filtres actifs, sans dupliquer de logique.
Contexte
Les listes génériques Saturne (
view/saturne_list.php) ne proposent aucune synthèse chiffrée : l'utilisateur doit parcourir les lignes pour estimer des totaux. Il manque une mécanique générique réutilisable par tous les modules pour afficher des cartes de KPI au-dessus d'une liste, calculées sur tout le périmètre filtré (et pas seulement la page courante).Proposition
Ajouter dans Saturne la mécanique générique (le contenu métier restant à la charge de chaque module via le hook
printFieldPreListTitle) :$sqlForList: exposer danscore/tpl/list/objectfields_list_build_sql_select.tpl.phpun instantané de la requête filtrée (tous filtres/jointures appliqués) avant tri et pagination.saturne_get_list_aggregates(DoliDB, string $baseSql, array $aggregates): enveloppe la requête en sous-requête et calcule des agrégats SQL sur l'ensemble filtré.saturne_render_kpi_cards(array $cards): rend une barre de cartes KPI (label / valeur / icône / couleur).css/scss/modules/kpi-cards/_kpi-cards.scss(classes.saturne-kpi-*non scopées, cohérent avecfilter-panel).Bénéfice
Tout module Saturne peut afficher des indicateurs synthétiques respectant automatiquement les filtres actifs, sans dupliquer de logique.