Skip to main content
Uygulamamızın iki özel nesneye ihtiyacı var: belge şablonları (ne yazılacağını belirten) ve belgeler (oluşturulan sonuç). Bunları tanımlayalım. CLI ile her varlık dosyasını iskelet olarak oluşturun — sizin için geçerli bir UUID ve doğru klasörü oluşturur:
Aşağıda tamamlanmış dosyaları gösteriyoruz.
Her *_UNIVERSAL_IDENTIFIER sabiti src/constants/universal-identifiers.ts içinde bulunur ve kullanıldığı yerde içe aktarılır. Aşağıdaki kod parçacıkları kısalık için bu içe aktarmaları atlar — kendi dosyalarınızda bunları eklemeyi unutmayın.

Şablon nesnesi

Bir şablonun bir name alanı, {{placeholders}} içeren bir body alanı ve bunun bir Person mı yoksa bir Company için mi yazıldığını belirten bir target alanı vardır. body bir RICH_TEXT alanıdır, bu nedenle Twenty ona tam özellikli bir zengin metin düzenleyicisi verir.
SELECT seçenek değerleri UPPER_CASE (PERSON, person değil) olmalıdır ve defaultValue fazladan tırnak içine alınır: `'PERSON'`. label, kullanıcıların gördüğü şeydir.

Belge nesnesi

Oluşturulan belge, işlenmiş content ve bir status saklar. Bunu yine aynı şekilde tanımlayın; status için DRAFT / GENERATED seçenekli bir select alanı kullanın. Tam dosya: document.object.ts.

Bir ilişkiyle bunları birbirine bağlama

Her belge, geldiği şablonu işaret etmelidir. İlişkiler çift yönlüdür — her iki tarafı da tanımlarsınız ve her birini kendi alan dosyasında belirtirsiniz.
Diğer taraf (template-documents-relation.field.ts), ters yönde işaret eden ve adı documents olan bir RelationType.ONE_TO_MANY alanıdır. Tam desen için Relations bölümüne bakın.

Bunu Twenty’de görün

yarn twenty dev çalışırken Settings → Data model bölümünü açın. Her iki nesne de uygulamanızla etiketlenmiş olarak görünür.

Her iki özel nesne, Document Generator uygulamasına aittir.

Test etmek için bir şablon oluşturun — adını Sales proposal koyun, Target alanını Person olarak ayarlayın ve birkaç yer tutucu içeren bir gövde yapıştırın:

Bir şablon kaydı. Gövde, bir belge oluşturulana kadar yer tutucularını korur.

Bu adımdan sonra: bir ilişkiyle birbirine bağlı documentTemplate ve document nesnelerine ve bunlardan belge oluşturmak için bir şablona sahipsiniz. Sırada, onu dolduran mantık var.

Sıradaki: belgeleri oluşturma →

Şablonu dolduran mantık fonksiyonunu yazın.