Simon C4: nell'inventario DUE sole voci principali; le sottoclassi le crea l'utente.
Riconduzione concordata (no perdita di dettaglio): hardware/network/facility -> ID.AM-01;
software/service/data -> ID.AM-02; personnel -> Organigramma (0 asset personnel presenti).
- Config: cfg_inventory_voci (2: ID.AM-01 Hardware, ID.AM-02 Software/Servizi/Sistemi),
inventory_subclassi (12 default di sistema org NULL + sottoclassi org-scoped).
- assets.voce_code + subclass_id (FK). 20 asset esistenti MIGRATI (5 ID.AM-01 / 15 ID.AM-02).
- AssetController: list con label voce/sottoclasse; create/update validati (voce in whitelist,
sottoclasse appartenente a org/default+voce); GET/POST /assets/subclasses; import (bulkUpsert)
deriva la voce dal tipo legacy. asset_type resta come campo legacy (viste secondarie).
- assets.html: filtro per voce, form con selettore Voce + Sottoclasse (+ '+ aggiungi'),
lista/dettaglio mostrano 'voce · sottoclasse', stat-chips per voce.
- FIX bug pre-esistente: apostrofo non escapato ('l'inventario') che ROMPEVA tutto il JS
della pagina Inventario. + cache-buster common-bi.js (era a v=20260618, non bumpato dal fix C3).
Help + KB + i18n. Verifiche prod: subclasses 200, create voce/legacy OK, validazione 422,
JS valido (node --check), migrazione idempotente. version 1.18.4.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2 lines
561 B
JSON
2 lines
561 B
JSON
{"version": "1.18.4", "build": "2026-06-16-v1.18.4", "date": "2026-06-16", "changelog": "Epic C / C4 - inventario a DUE voci (ID.AM-01 Hardware, ID.AM-02 Software/Servizi/Sistemi) + sottoclassi configurabili (default di sistema + create dall'utente). mig.050: cfg_inventory_voci, inventory_subclassi, assets.voce_code/subclass_id; 20 asset migrati. AssetController voce/subclass + endpoint subclasses; assets.html selettori voce+sottoclasse. Fix: apostrofo non escapato che rompeva il JS dell'Inventario; cache-buster common-bi.js (fix sidebar C3). Additivo."}
|