Add May 2026 AG Grid session notes

This commit is contained in:
2026-05-04 17:20:27 +02:00
parent fb54c32ec4
commit 598fee6025
2 changed files with 182 additions and 0 deletions

View File

@@ -702,3 +702,112 @@ Le switch du theme met maintenant aussi a jour le logo sans attendre un nouveau
- continuer a garder le dark mode dans un perimetre "safe" tant que les composants les plus fragiles ne sont pas inventories
- si un nouveau bloc reste clair en dark mode, le traiter par zone locale au lieu de surcharger tout le theme global
- si un fallback AG Grid semble anormal, commencer par lire `TREE_VIEW_DECISION_FLAT_JSON`
## Session du 2026-05-04
### Sauvegarde Git / repo
- migration du remote Git vers:
- `https://gitea.open-squared.tech/admin/sao2.0.git`
- commit de sauvegarde global du travail AG Grid / dark mode / notes
- rappel important d'arborescence:
- ce repo ne correspond pas exactement a l'arborescence serveur
- `index.html` est gere dans le repo parent cote serveur
- les fichiers effectivement deployes manuellement cote serveur sont surtout dans `/dist`
- quand on modifie `tryton-sao.js` ou `tryton-sao.css`, penser a synchroniser aussi `dist/tryton-sao.js` ou `dist/tryton-sao.css`
### Correctif Many2One / icones dans les champs
Probleme observe:
- dans les champs `Many2One`, le texte chevauchait l'icone primaire "ouvrir le modele lie"
- le symptome etait visible sur des champs comme `Party`, `Payment Term`, `Currency`, `From location`, `To location`
Cause:
- la modernisation CSS des inputs dans `.screen-container` avait casse le padding historique reserve aux icones `input-icon-primary` / `input-icon-secondary`
- une premiere correction CSS ne s'appliquait pas car la page a `html lang="en" theme="default"` mais pas `dir="ltr"`
- autre point important: `index.html` charge `dist/tryton-sao.js` et `dist/tryton-sao.css`, pas seulement les fichiers racine
Correction stabilisee:
- ajout d'une correction JS dans `Sao.View.Form.Many2One`
- nouvelle methode:
- `_sync_icon_padding`
- appelee depuis `display`
- elle force le padding gauche/droite de l'input selon les icones visibles
- correction appliquee dans:
- `tryton-sao.js`
- `dist/tryton-sao.js`
Trace temporaire utile:
- `[M2O_ICON_LAYOUT]`
Note:
- la trace est volontairement limitee aux premiers champs
- elle pourra etre retiree apres stabilisation definitive de l'UI
### Correctif AG Grid grouping restaure
Probleme observe:
- en groupant par un champ `Many2One` comme `Supplier`, le grouping fonctionnait pendant la session
- apres fermeture/reouverture de la forme, le panneau `Grouping` restaurait bien la ligne `Supplier`
- mais les donnees etaient regroupees comme si les valeurs etaient vides, avec principalement `(Empty)`
Cause probable confirmee:
- le state de grouping etait restaure avant que les valeurs texte des champs groupants soient chargees
- pour un `Many2One`, il faut le `rec_name`
- si la construction de `rowData` part trop tot, `_get_group_key_text` retombe sur une valeur vide et cree le groupe `(Empty)`
Correction:
- ajout de `_load_grouping_values`
- avant de construire `rowData`, `display` attend le chargement des champs presents dans `grouping.groupBy`
- ensuite seulement la grille reconstruit les lignes groupees
- correction appliquee dans:
- `tryton-sao.js`
- `dist/tryton-sao.js`
Traces utiles:
- `[AGGRID][GROUPING_LOAD_FIELDS_FLAT_JSON]`
- `[AGGRID][GROUPING_KEYS_FLAT_JSON]`
### Favicon Trad'on
- ajout d'une icone navigateur Trad'on basee sur le style existant:
- grand `T` vert
- fond carre arrondi bleu petrole / vert
- fichier ajoute:
- `images/tradon-icon.png`
- `index.html` reference deja:
- `images/tradon-icon.png`
Point de deploiement:
- comme `index.html` est dans le repo parent cote serveur, verifier que le fichier `images/tradon-icon.png` est bien servi au bon chemin relatif
- le cache favicon navigateur peut etre tenace: refresh dur ou vidage cache si besoin
### Commits importants
- `fc9ab5d Save SAO AG Grid work`
- `d9292b8 Fix served Many2One icon padding`
- `d78c9e0 Fix AG Grid restored grouping values`
- `fb54c32 Add Tradon browser favicon`
### Memo pour la prochaine session
- ne pas oublier que les changements utiles au serveur doivent souvent toucher `dist/`
- retirer plus tard les traces temporaires:
- `[M2O_ICON_LAYOUT]`
- `[AGGRID][GROUPING_LOAD_FIELDS_FLAT_JSON]`
- `[AGGRID][GROUPING_KEYS_FLAT_JSON]`
- les anciennes traces `GROUPING_*` / `ROW_DATA_KIND_*` si elles ne sont plus necessaires
- si le grouping restaure retombe encore sur `(Empty)`, lire d'abord:
- `GROUPING_LOAD_FIELDS_FLAT_JSON`
- `GROUPING_KEYS_FLAT_JSON`
- si une correction visuelle semble inactive, verifier d'abord quel fichier est charge par `index.html` et si `dist/` a ete synchronise

View File

@@ -160,3 +160,76 @@ 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