54 lines
1.4 KiB
Python
54 lines
1.4 KiB
Python
from pydantic import Field
|
|
from typing import List
|
|
|
|
from firm.template.models import ContractTemplate, ProvisionTemplate, PartyTemplate, ProvisionTemplateReference, DictionaryEntry
|
|
from firm.core.schemas import Writer, Reader
|
|
from firm.core.models import RichtextMultiline, RichtextSingleline
|
|
|
|
|
|
class ContractTemplateRead(Reader, ContractTemplate):
|
|
pass
|
|
|
|
|
|
class ContractTemplateCreate(Writer):
|
|
name: str = Field(title="Nom")
|
|
title: str = Field(title="Titre")
|
|
parties: List[PartyTemplate] = Field(
|
|
default=[],
|
|
props={"items_per_row": "2"},
|
|
title="Parties")
|
|
provisions: List[ProvisionTemplateReference] = Field(
|
|
default=[],
|
|
props={"items_per_row": "1", "numbered": True},
|
|
title="Clauses"
|
|
)
|
|
variables: List[DictionaryEntry] = Field(
|
|
default=[],
|
|
props={"display": "dictionary", "required": False},
|
|
title="Variables"
|
|
)
|
|
|
|
class Config:
|
|
title = 'Template de Contrat'
|
|
|
|
|
|
class ContractTemplateUpdate(ContractTemplateCreate):
|
|
pass
|
|
|
|
|
|
class ProvisionTemplateRead(Reader, ProvisionTemplate):
|
|
pass
|
|
|
|
|
|
class ProvisionTemplateCreate(Writer):
|
|
name: str = Field(title="Nom")
|
|
title: str = RichtextSingleline(title="Titre")
|
|
body: str = RichtextMultiline(title="Corps")
|
|
|
|
class Config:
|
|
title = 'Template de Clause'
|
|
|
|
|
|
class ProvisionTemplateUpdate(ProvisionTemplateCreate):
|
|
pass
|