Badge notes

This commit is contained in:
2026-06-02 20:17:32 +02:00
parent 5ceebbf80c
commit 2835f49182
6 changed files with 825 additions and 40 deletions

View File

@@ -1027,3 +1027,101 @@ Point de deploiement:
- `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
### Session du 2026-06-02 - KPI badges Lots Management non resolu
Demande UX:
- rapprocher `Lots management` de la maquette recue:
- barre KPI compacte entre les boutons AG Grid et la grille
- compteurs par valeur de badge (`Open`, `Physic`, `scheduled`, `shipped`, `unshipped`, etc.)
- badges en rendu pastel: fond clair + texte couleur forte
- couleurs proches de la maquette:
- `Open`: bleu
- `Physic`: violet
- `scheduled`: orange
- `shipped`: vert
- `unshipped`: rouge
Ce qui a ete implemente dans `tryton-sao.js` / `dist/tryton-sao.js`:
- ajout de `this.summary_bar` sous la toolbar AG Grid
- appel de `_update_summary_bar()` apres:
- changement de colonnes
- changement de filtre AG Grid
- refresh de `rowData`
- `display()`
- prise en compte de la hauteur de la barre KPI dans `_resize_grid_host()`
- helpers ajoutes/touches:
- `_get_visible_record_rows`
- `_get_summary_badge_columns`
- `_render_summary_item`
- `_update_summary_bar`
- `_normalize_badge_text_key`
- `_get_badge_color_order`
- `_get_badge_display_colors`
- `_append_badge_summary_items`
- `_get_summary_status_sources_from_grid`
- `_get_default_badge_summary_color`
- tentative de fallback:
- scanner les `columnDefs` AG Grid visibles qui ressemblent a des colonnes `status`, `state`, `type`, `shipping`, `shipment`, `open/physic`
- normaliser les valeurs type `emoji + Open` en `Open`
Ce qui a ete implemente dans `tryton-sao.css` / `dist/tryton-sao.css`:
- styles `.ag-grid-tree-summary`, `.ag-grid-summary-item`, `.ag-grid-summary-label`, `.ag-grid-summary-value`
- badges `.ag-grid-badge` passes en fond clair + texte plus fort
- couleurs dark mode pour la barre KPI
Etat observe par l'utilisateur:
- les badges de grille sont bien en rendu pastel pour `Shipping status`
- `Qt type` affiche encore `Open` / `Physic` en texte simple ou avec rendu partiel selon la config cote Tryton
- la barre KPI affiche toujours seulement:
- `Rows`
- `192`
- les compteurs par valeur de badge ne s'affichent pas, meme apres les fallbacks ajoutes
Conclusion importante:
- le probleme des totaux par valeur de badge n'est PAS resolu
- ne pas considerer les helpers KPI actuels comme valides
- prochaine reprise: instrumenter avant de retoucher encore
Hypotheses probables a verifier:
- `_get_summary_badge_columns()` retourne vide au runtime, ou retourne des colonnes sans valeurs exploitables
- `_get_summary_status_sources_from_grid()` ne voit pas les `columnDefs` attendus au moment ou `_update_summary_bar()` tourne
- `rows` contient bien 192 lignes, mais les proprietes lues (`row[name]`) ne correspondent pas aux `field/colId` visibles dans AG Grid
- les valeurs visibles dans les cellules peuvent venir du `valueGetter` / renderer, mais ne pas etre presentes dans le `rowData` sous le meme nom
- le `summary_bar` peut etre mis a jour avant que `_grid_columns` soit disponible ou avant que les `columnDefs` restaurees soient reappliquees
Trace a ajouter en premier a la prochaine session:
- une trace plate, appelee par exemple `[AGGRID][SUMMARY_BADGES_DEBUG_JSON]`, dans `_update_summary_bar()`
- champs minimum:
- `rowsLength`
- `rowKeysSample`: `Object.keys(rows[0] || {})`
- `rowSample`: valeurs des colonnes visibles sur 1 ou 2 lignes
- `summaryBadgeColumns`: noms/labels/attributs des colonnes retournees par `_get_summary_badge_columns()`
- `gridColumns`: `field`, `colId`, `headerName`, `cellClass`, `headerClass` de `this._grid_columns`
- `displayedColumns`: `getAllDisplayedColumns().map(col => col.getColId())`
- `statusSources`: retour de `_get_summary_status_sources_from_grid()`
- `summaryItemsBeforeRender`
Lignes Tryton/XML conseillees pour le rendu badges, mais a confirmer apres debug:
```xml
<field name="r_lot_status" widget="badge"
badge_colors="Open:#2563eb,Physic:#8b5cf6"/>
<field name="r_shipping_status" widget="badge"
badge_colors="scheduled:#f59e0b,shipped:#16a34a,unshipped:#ef4444"/>
```
Point de vigilance:
- si `Qt type` a un emoji/prefixe cote Python ou XML, SAO doit soit:
- rendre l'icone separement du texte de valeur
- soit normaliser la cle avant mapping couleur/KPI
- eviter de continuer a corriger "a l'oeil"; le prochain pas doit etre une trace runtime partageable.