7.5 KiB
AG Grid Session Index
Point d'entree
Ce fichier sert de synthese rapide pour reprendre le projet AG Grid / SAO a la prochaine session.
Documents a lire dans l'ordre
-
AG_GRID_COMPATIBILITY_ANALYSIS.md
- vision d'ensemble
- contraintes structurelles SAO / AG Grid
- architecture cible et risques
-
- etat d'avancement du POC
- ce qui est deja branche dans le code
- ce qui restait a faire apres les premieres passes
-
- retour d'experience de la grosse session de debug CSS
- ce qui a fait perdre du temps
- ce qui a vraiment aide
- methode recommandee pour les prochaines retouches visuelles
Synthese globale
1. Ce qui est valide
- POC AG Grid Community en JavaScript pur branche dans SAO
- fallback historique SAO conserve
- selection de lignes fonctionnelle
- tri fonctionnel
- filtres popup fonctionnels
- rendu visuel fortement rapproche du style AG Grid standard
- persistance locale du layout utilisateur
- panneau
Columnscustom stable - grouping multi-level avec agregations, sous-totaux et grand total
2. Ce qu'on a appris
- le principal risque n'est pas AG Grid, mais le vieux CSS global SAO
- les pseudo-elements et les styles globaux sur les controles natifs peuvent casser le theme AG Grid
- les retouches visuelles doivent etre debuggees avec des traces DOM/cascade, pas seulement "a l'oeil"
- les bugs de state doivent eux aussi etre traces tres tot
- les traces utiles a partager doivent etre en JSON plat
- si 1 ou 2 corrections "intuitives" ne suffisent pas, il faut instrumenter immediatement
3. Strategie pour la prochaine session
- ne pas repartir de zero
- relire d'abord cette page puis la section la plus recente de
AG_GRID_PROGRESS.md - relire ensuite
AG_GRID_STYLING_NOTES.md - si un bug visuel resiste a 1 ou 2 corrections, passer tout de suite a un dump cible
- si un bug de state ou de rendering resiste a 1 ou 2 corrections, ajouter tout de suite une trace
..._FLAT_JSON - eviter les gros changements globaux de priorite CSS sans isolation claire
Point de reprise apres la session du 2026-03-30
Le POC a franchi un palier important:
- panneau
Columnshors Bootstrap, stable et persiste - configuration utilisateur locale de la grille
- panneau
Grouping - grouping multi-level client-side
- agregations
- sous-totaux
- grand total
- toolbar simplifiee et icones plus propres
Les traces suivantes ont ete introduites pour accelerer le debug:
COLUMNS_MENU_LAYOUT_FLAT_JSONGROUPING_ACTION_FLAT_JSONGROUPING_STATE_FLAT_JSONGROUPING_PERSISTED_FLAT_JSONROW_DATA_KIND_FLAT_JSON
Memo important:
- produire les traces plus frequemment
- preferer des JSON plats des le debut
- ne pas attendre plusieurs tentatives "a l'aveugle" quand un symptome resiste
Point de reprise apres la session du 2026-03-31
Deux chantiers supplementaires ont ete consolides:
- diagnostic de fallback AG Grid plus riche
- dark mode V1 safe sur le shell principal et la grille
Fallback renderer
La trace a lire en premier est maintenant:
TREE_VIEW_DECISION_FLAT_JSON
Elle permet de savoir immediatement si une vue part sur:
ag_gridlegacy_tree
Et pourquoi, avec notamment:
children_fieldeditable_viewembedded_relation_tree
Le nouveau garde-fou embedded_relation_tree est important:
- il evite que des sous-listes embarquees de type
one2manyou relationnelles partent par erreur sur AG Grid
Dark mode V1
Le dark mode est maintenant present dans une version prudente:
- toggle global pres du logo
- persistance locale
- logo light/dark dedie
- topbar, menu, shell, filtres modernises, toolbar de formulaire et AG Grid traites
Ne pas supposer que tout legacy est theme en dark:
- les composants fragiles n'ont pas encore tous ete traites
- il faut continuer par zones locales
Next steps produit memorises
Priorite probable
- presets / bookmarks d'affichage par user/vue
Idee retenue:
- permettre au user de choisir une configuration nommee de grille
- separer si besoin:
- bookmark de filtre SAO
- preset de layout/tri/grouping AG Grid
Suite logique apres grouping / sous-totaux
Reset layoutReset groupingExpand all / Collapse all- presets nommes de vue
- support de plus de colonnes speciales
- meilleure visibilite des raisons de fallback vers l'ancien tree
- plus tard: agregations backend sur tout le dataset filtre
Suite logique dark mode
- finir le perimetre safe du dark mode
- verifier les toolbars / panneaux encore heterogenes
- traiter ensuite les modales et dropdowns les plus utilises
- garder la bascule light/dark strictement non destructive
Recommandation long terme
Si AG Grid doit devenir central dans les vues tree, il faudra probablement:
- mieux isoler AG Grid du CSS global SAO
- ou rationaliser les anciennes regles SAO sur
input/select/radio/checkbox - ou definir une vraie zone de styles AG Grid maitrisee
Point de reprise apres la session du 2026-05-04
Session de stabilisation apres migration vers le depot:
https://gitea.open-squared.tech/admin/sao2.0.git
Regle importante d'arborescence / deploiement
Le repo local ne correspond pas exactement a l'arborescence serveur:
index.htmlest gere dans le repo parent cote serveur- les fichiers utiles au runtime sont charges depuis
dist/ - quand on modifie
tryton-sao.jsoutryton-sao.css, penser a synchroniser aussi:dist/tryton-sao.jsdist/tryton-sao.css
Ce point a explique pourquoi une correction CSS Many2One semblait inactive.
Correctif Many2One
Probleme corrige:
- texte des champs
Many2Onechevauchant l'icone primaire d'ouverture
Correction retenue:
- ne pas compter uniquement sur le CSS
Sao.View.Form.Many2One.display()appelle maintenant_sync_icon_padding_sync_icon_paddingpose directement le padding gauche/droite selon les icones visibles
Trace temporaire:
[M2O_ICON_LAYOUT]
Correctif grouping AG Grid restaure
Probleme corrige:
- apres reouverture d'une vue, le panneau
Groupingrestaurait bienSupplier - mais les groupes etaient reconstruits avec des valeurs vides, donc
(Empty)
Cause:
- le grouping persistait plus vite que le chargement des valeurs texte
Many2One/rec_name
Correction:
_load_grouping_valuescharge les champs presents dansgrouping.groupBydisplay()attend ce chargement avant de construirerowData
Traces a lire si le sujet revient:
[AGGRID][GROUPING_LOAD_FIELDS_FLAT_JSON][AGGRID][GROUPING_KEYS_FLAT_JSON][AGGRID][ROW_DATA_KIND_FLAT_JSON]
Favicon
- ajout de
images/tradon-icon.png - style: grand
Tvert sur fond carre arrondi bleu petrole / vert - attention au cache navigateur favicon
Commits de reprise
d9292b8 Fix served Many2One icon paddingd78c9e0 Fix AG Grid restored grouping valuesfb54c32 Add Tradon browser favicon
Nettoyage futur
- retirer les traces temporaires une fois la stabilisation confirmee
- garder le reflexe des traces JSON plates pour les bugs AG Grid difficiles
Dernier correctif en cours
- les modales
Sao.Window.Searchouvertes par les loupesMany2Onene doivent pas utiliser AG Grid pour l'instant - marqueur ajoute:
search_window: true - fallback AG Grid ajoute:
search_window - symptome corrige: fenetre
Search Brokervide alors que les records existent