Translations for most of contract & templates
This commit is contained in:
@@ -30,9 +30,10 @@ class DraftParty(BaseModel):
|
||||
"schema": "Entity",
|
||||
}
|
||||
},
|
||||
default=""
|
||||
default="",
|
||||
title="Partie"
|
||||
)
|
||||
part: str
|
||||
part: str = Field(title="Rôle")
|
||||
representative_id: str = Field(
|
||||
foreignKey={
|
||||
"reference": {
|
||||
@@ -40,13 +41,12 @@ class DraftParty(BaseModel):
|
||||
"schema": "Entity",
|
||||
}
|
||||
},
|
||||
default=""
|
||||
default="",
|
||||
title="Représentant"
|
||||
)
|
||||
|
||||
|
||||
class Signature(BaseModel):
|
||||
uuid: str
|
||||
affixed: bool
|
||||
class Config:
|
||||
title = 'Partie'
|
||||
|
||||
|
||||
class Party(BaseModel):
|
||||
@@ -60,8 +60,11 @@ class Party(BaseModel):
|
||||
|
||||
class ProvisionGenuine(BaseModel):
|
||||
type: Literal['genuine'] = 'genuine'
|
||||
title: str = RichtextSingleline(props={"parametrized": True}, default="")
|
||||
body: str = RichtextMultiline(props={"parametrized": True}, default="")
|
||||
title: str = RichtextSingleline(props={"parametrized": True}, default="", title="Titre")
|
||||
body: str = RichtextMultiline(props={"parametrized": True}, default="", title="Corps")
|
||||
|
||||
class Config:
|
||||
title = 'Clause personalisée'
|
||||
|
||||
|
||||
class ContractProvisionTemplateReference(BaseModel):
|
||||
@@ -75,32 +78,45 @@ class ContractProvisionTemplateReference(BaseModel):
|
||||
},
|
||||
},
|
||||
props={"parametrized": True},
|
||||
default=""
|
||||
default="",
|
||||
title="Template de clause"
|
||||
)
|
||||
|
||||
class Config:
|
||||
title = 'Template de clause'
|
||||
|
||||
|
||||
class DraftProvision(BaseModel):
|
||||
provision: ContractProvisionTemplateReference | ProvisionGenuine = Field(..., discriminator='type')
|
||||
|
||||
class Config:
|
||||
title = 'Provision'
|
||||
|
||||
|
||||
class Provision(BaseModel):
|
||||
title: str = RichtextSingleline()
|
||||
body: str = RichtextMultiline()
|
||||
title: str = RichtextSingleline(title="Titre")
|
||||
body: str = RichtextMultiline(title="Corps")
|
||||
|
||||
|
||||
class ContractDraft(CrudDocument):
|
||||
name: str
|
||||
title: str
|
||||
parties: List[DraftParty]
|
||||
"""
|
||||
Brouillon de contrat à remplir
|
||||
"""
|
||||
|
||||
name: str = Field(title="Nom")
|
||||
title: str = Field(title="Titre")
|
||||
parties: List[DraftParty] = Field(title="Parties")
|
||||
provisions: List[DraftProvision] = Field(
|
||||
props={"items-per-row": "1", "numbered": True}
|
||||
props={"items-per-row": "1", "numbered": True},
|
||||
title='Clauses'
|
||||
)
|
||||
variables: List[DictionaryEntry] = Field(
|
||||
default=[],
|
||||
format="dictionary",
|
||||
title='Variables'
|
||||
)
|
||||
status: ContractDraftStatus = ContractDraftStatus.in_progress
|
||||
todo: List[str] = []
|
||||
status: ContractDraftStatus = Field(default=ContractDraftStatus.in_progress, title="Statut")
|
||||
todo: List[str] = Field(default=[], title="Reste à faire")
|
||||
|
||||
class Settings(CrudDocument.Settings):
|
||||
fulltext_search = ['name', 'title']
|
||||
@@ -111,6 +127,9 @@ class ContractDraft(CrudDocument):
|
||||
hour=0, minute=0, second=0)
|
||||
}
|
||||
|
||||
class Config:
|
||||
title = 'Brouillon de contrat'
|
||||
|
||||
async def check_is_ready(self):
|
||||
if self.status == ContractDraftStatus.published:
|
||||
return
|
||||
@@ -147,16 +166,17 @@ class ContractDraft(CrudDocument):
|
||||
|
||||
|
||||
class Contract(CrudDocument):
|
||||
name: str
|
||||
title: str
|
||||
parties: List[Party]
|
||||
name: str = Field(title="Nom")
|
||||
title: str = Field(title="Titre")
|
||||
parties: List[Party] = Field(title="Parties")
|
||||
provisions: List[Provision] = Field(
|
||||
props={"items-per-row": "1", "numbered": True}
|
||||
props={"items-per-row": "1", "numbered": True},
|
||||
title='Clauses'
|
||||
)
|
||||
status: ContractStatus = ContractStatus.published
|
||||
lawyer: Entity
|
||||
location: str
|
||||
date: datetime.date
|
||||
status: ContractStatus = Field(default=ContractStatus.published, title="Statut")
|
||||
lawyer: Entity = Field(title="Avocat en charge")
|
||||
location: str = Field(title="Lieu")
|
||||
date: datetime.date = Field(title="Date")
|
||||
|
||||
class Settings(CrudDocument.Settings):
|
||||
fulltext_search = ['name', 'title']
|
||||
|
||||
@@ -39,18 +39,27 @@ class ContractDraftUpdate(ContractDraftCreate):
|
||||
class ForeignEntityRead(BaseModel):
|
||||
label: str
|
||||
|
||||
class Config:
|
||||
title = "Avocat"
|
||||
|
||||
|
||||
class PartyRead(BaseModel):
|
||||
signature_affixed: bool
|
||||
signature_uuid: str = Field(format="signature-link")
|
||||
part: str
|
||||
entity: ForeignEntityRead
|
||||
signature_affixed: bool = Field(title='Signature apposée?')
|
||||
signature_uuid: str = Field(format="signature-link", title="Lien vers signature")
|
||||
part: str = Field(title='Rôle')
|
||||
entity: ForeignEntityRead = Field(title='Client')
|
||||
|
||||
class Config:
|
||||
title = "Partie"
|
||||
|
||||
|
||||
class ContractRead(Contract):
|
||||
parties: List[PartyRead]
|
||||
lawyer: ForeignEntityRead
|
||||
|
||||
class Config:
|
||||
title = "Contrat"
|
||||
|
||||
|
||||
class ContractCreate(Writer):
|
||||
date: datetime.date
|
||||
|
||||
Reference in New Issue
Block a user