feat(nakui): Fase 2 del ERP — relaciones legibles + formato
Column.ref_entity resuelve un UUID al label del record referido; Column.format (ValueFormat Number/Currency) agrupa miles y prefija símbolo. El campo entity_ref en formularios muestra el record elegido por su label, no el UUID. human_label_for_record reconoce nombre/titulo (español). El módulo CRM: las listas muestran el nombre del cliente y monto como $12,000. Helper format_value en meta-runtime. Tests en meta-schema, meta-runtime y nakui-ui verdes; clippy limpio. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -433,6 +433,30 @@ mod tests {
|
||||
] {
|
||||
assert!(m.views.contains_key(view), "falta la vista «{view}»");
|
||||
}
|
||||
|
||||
// Fase 2: la lista de oportunidades resuelve `cliente_id` al
|
||||
// label del cliente y formatea `monto` como moneda.
|
||||
let nahual_meta_schema::View::List(lv) = &m.views["oportunidad_list"] else {
|
||||
panic!("oportunidad_list debe ser una lista");
|
||||
};
|
||||
let cliente_col = lv
|
||||
.columns
|
||||
.iter()
|
||||
.find(|c| c.field == "cliente_id")
|
||||
.expect("columna cliente_id");
|
||||
assert_eq!(cliente_col.ref_entity.as_deref(), Some("Cliente"));
|
||||
let monto_col = lv
|
||||
.columns
|
||||
.iter()
|
||||
.find(|c| c.field == "monto")
|
||||
.expect("columna monto");
|
||||
assert!(
|
||||
matches!(
|
||||
monto_col.format,
|
||||
nahual_meta_schema::ValueFormat::Currency { .. }
|
||||
),
|
||||
"monto debe formatearse como moneda",
|
||||
);
|
||||
}
|
||||
|
||||
/// Carga el módulo crm por el mismo camino que usa `nakui-ui`
|
||||
|
||||
Reference in New Issue
Block a user