Saltar al contenido principal

Resumen

Nuestra aplicación necesita dos objetos personalizados: plantillas de documentos (qué escribir) y documentos (el resultado generado). Vamos a definirlos. Escaffold cada archivo de entidad con la CLI — genera un UUID válido y la carpeta correcta para ti:
A continuación mostramos los archivos terminados.
Cada *_UNIVERSAL_IDENTIFIER vida constante en src/constants/universal-identifiers.ts y es importado donde se utiliza. Los fragmentos a continuación omiten esas importaciones por brevedad; consérvalas en tus propios archivos.

El objeto de plantilla

Una plantilla tiene un nombre, un cuerpo con {{placeholders}}, y un target que dice si está escrito para una persona o una empresa. El body es un campo RICH_TEXT, así que Veinte le da un editor completo de texto.
Los valores de la opción SELECT deben estar en UPPER_CASE (PERSON, no person), y el defaultValue está entre comillas adicionales: `'PERSON'`. La label es lo que ven los usuarios.

El objeto del documento

El documento generado almacena el contenido renderizado y un status. Definirlo de la misma manera, con un status seleccionado de DRAFT / GENERATED. Archivo completo: document.object.ts.

Vinculándolas con una relación

Cada documento debe apuntar de nuevo a la plantilla de la que proviene. Las relaciones son bidireccionales — defines ambos lados, cada uno en su propio archivo de campo.
El otro lado (template-documents-relation.field.ts) es un campo RelationType.ONE_TO_MANY llamado documents que apunta a la manera opuesta. Ver Relations para ver el patrón completo.

Ver en Veinte

Con twenty app dev en ejecución, abre Configuración → Modelo de datos. Ambos objetos aparecen, etiquetados con tu aplicación.
Configuración del modelo de datos mostrando plantillas de documentos y documentos

Ambos objetos personalizados, propiedad del generador de documentos.

Crea una plantilla para probarla; llámala Propuesta de ventas, establece Destino en Persona y pega un cuerpo con algunos marcadores de posición:
Un registro de plantilla de propuesta de ventas con el cuerpo del marcador de posición

Un registro de plantilla. El cuerpo mantiene sus marcadores de posición hasta que se genere un documento.

Después de este paso: tienes los objetos documentTemplate y document, enlazados por una relación, y una plantilla para generar. Después, la lógica que lo llena.
card-page-tutorial-documents
Siguiente: generar documentos →
Escribe la función lógica que llena la plantilla.