feat(nakui): Fase 7 del ERP — pulido (cierra el plan maestro)
Validación inline: al fallar un submit por campos required vacíos, el form los marca (label destructivo + mensaje debajo), no sólo un toast. MetaApp.form_errors + validate_required_fields. Secciones de formulario: FieldSpec.section agrupa campos bajo encabezados; abrir_form del CRM las usa. Campos condicionales y pulido puramente visual: scope-out conciente. El plan docs/nakui-erp-masterplan.md queda completo (7/7 fases). Tests verdes (meta-schema 16, meta-runtime 70, meta-form 8, nakui-ui 14); clippy limpio en las libs. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -139,12 +139,12 @@
|
||||
"title": "Abrir oportunidad (morphism)",
|
||||
"entity": "Oportunidad",
|
||||
"fields": [
|
||||
{ "name": "cliente_ref", "label": "Cliente", "kind": "entity_ref", "ref_entity": "Cliente", "required": true, "help": "Click en un cliente de la lista para seleccionarlo." },
|
||||
{ "name": "oportunidad_id", "label": "ID de la oportunidad", "kind": "auto_id" },
|
||||
{ "name": "titulo", "label": "Título", "kind": "text", "required": true },
|
||||
{ "name": "monto", "label": "Monto", "kind": "number", "required": true, "default": "0" },
|
||||
{ "name": "currency", "label": "Moneda", "kind": "text", "default": "USD" },
|
||||
{ "name": "timestamp", "label": "Fecha ISO", "kind": "text", "required": true, "default": "2026-05-21T12:00:00Z" }
|
||||
{ "name": "cliente_ref", "label": "Cliente", "kind": "entity_ref", "ref_entity": "Cliente", "required": true, "section": "Oportunidad", "help": "Click en un cliente de la lista para seleccionarlo." },
|
||||
{ "name": "oportunidad_id", "label": "ID de la oportunidad", "kind": "auto_id", "section": "Oportunidad" },
|
||||
{ "name": "titulo", "label": "Título", "kind": "text", "required": true, "section": "Oportunidad" },
|
||||
{ "name": "monto", "label": "Monto", "kind": "number", "required": true, "default": "0", "section": "Importe y fecha" },
|
||||
{ "name": "currency", "label": "Moneda", "kind": "text", "default": "USD", "section": "Importe y fecha" },
|
||||
{ "name": "timestamp", "label": "Fecha ISO", "kind": "text", "required": true, "default": "2026-05-21T12:00:00Z", "section": "Importe y fecha" }
|
||||
],
|
||||
"on_submit": {
|
||||
"kind": "morphism",
|
||||
|
||||
Reference in New Issue
Block a user