Badge notes
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user