236 lines
7.1 KiB
Markdown
236 lines
7.1 KiB
Markdown
# 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
|
|
|
|
1. [AG_GRID_COMPATIBILITY_ANALYSIS.md](c:\DataS\OpenSquared\Tradon\Source\Sao\AG_GRID_COMPATIBILITY_ANALYSIS.md)
|
|
- vision d'ensemble
|
|
- contraintes structurelles SAO / AG Grid
|
|
- architecture cible et risques
|
|
|
|
2. [AG_GRID_PROGRESS.md](c:\DataS\OpenSquared\Tradon\Source\Sao\AG_GRID_PROGRESS.md)
|
|
- etat d'avancement du POC
|
|
- ce qui est deja branche dans le code
|
|
- ce qui restait a faire apres les premieres passes
|
|
|
|
3. [AG_GRID_STYLING_NOTES.md](c:\DataS\OpenSquared\Tradon\Source\Sao\AG_GRID_STYLING_NOTES.md)
|
|
- 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 `Columns` custom 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 `Columns` hors 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_JSON`
|
|
- `GROUPING_ACTION_FLAT_JSON`
|
|
- `GROUPING_STATE_FLAT_JSON`
|
|
- `GROUPING_PERSISTED_FLAT_JSON`
|
|
- `ROW_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_grid`
|
|
- `legacy_tree`
|
|
|
|
Et pourquoi, avec notamment:
|
|
|
|
- `children_field`
|
|
- `editable_view`
|
|
- `embedded_relation_tree`
|
|
|
|
Le nouveau garde-fou `embedded_relation_tree` est important:
|
|
|
|
- il evite que des sous-listes embarquees de type `one2many` ou 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 layout`
|
|
- `Reset grouping`
|
|
- `Expand 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.html` est gere dans le repo parent cote serveur
|
|
- les fichiers utiles au runtime sont charges depuis `dist/`
|
|
- quand on modifie `tryton-sao.js` ou `tryton-sao.css`, penser a synchroniser aussi:
|
|
- `dist/tryton-sao.js`
|
|
- `dist/tryton-sao.css`
|
|
|
|
Ce point a explique pourquoi une correction CSS Many2One semblait inactive.
|
|
|
|
### Correctif Many2One
|
|
|
|
Probleme corrige:
|
|
|
|
- texte des champs `Many2One` chevauchant 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_padding` pose 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 `Grouping` restaurait bien `Supplier`
|
|
- 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_values` charge les champs presents dans `grouping.groupBy`
|
|
- `display()` attend ce chargement avant de construire `rowData`
|
|
|
|
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 `T` vert sur fond carre arrondi bleu petrole / vert
|
|
- attention au cache navigateur favicon
|
|
|
|
### Commits de reprise
|
|
|
|
- `d9292b8 Fix served Many2One icon padding`
|
|
- `d78c9e0 Fix AG Grid restored grouping values`
|
|
- `fb54c32 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
|