Translations for most of contract & templates

This commit is contained in:
2023-03-12 19:12:35 +01:00
parent 868eea79bf
commit 427ea64f8d
5 changed files with 122 additions and 49 deletions

View File

@@ -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']

View File

@@ -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

View File

@@ -34,6 +34,9 @@ class Individual(EntityType):
return '{} {}'.format(self.firstname, self.lastname)
class Config:
title = 'Particulier'
class Employee(BaseModel):
role: Indexed(str) = Field(title='Poste')
@@ -57,10 +60,16 @@ class Corporation(EntityType):
activity: Indexed(str) = Field(title='Activité')
employees: List[Employee] = Field(default=[], title='Employés')
class Config:
title = 'Entreprise'
class Institution(Corporation):
type: Literal['institution'] = 'institution'
class Config:
title = 'Institution'
class Entity(CrudDocument):
"""

View File

@@ -14,9 +14,10 @@ class PartyTemplate(BaseModel):
"schema": "Entity",
}
},
default=""
default="",
title="Partie"
)
part: str
part: str = Field(title="Rôle")
representative_id: str = Field(
foreignKey={
"reference": {
@@ -24,9 +25,13 @@ class PartyTemplate(BaseModel):
"schema": "Entity",
}
},
default=""
default="",
title="Représentant"
)
class Config:
title = 'Partie'
def remove_html_tags(text):
"""Remove html tags from a string"""
@@ -36,10 +41,14 @@ def remove_html_tags(text):
class ProvisionTemplate(CrudDocument):
name: str
title: str = RichtextSingleline()
"""
Modèle de clause à décliner
"""
name: str = Field(title="Nom")
title: str = RichtextSingleline(title="Titre")
label: str = ""
body: str = RichtextMultiline()
body: str = RichtextMultiline(title="Corps")
@validator("label", always=True)
def generate_label(cls, v, values, **kwargs):
@@ -48,6 +57,9 @@ class ProvisionTemplate(CrudDocument):
class Settings(CrudDocument.Settings):
fulltext_search = ['name', 'title', 'body']
class Config:
title = 'Template de clause'
class ProvisionTemplateReference(BaseModel):
provision_template_id: str = Field(
@@ -58,22 +70,31 @@ class ProvisionTemplateReference(BaseModel):
"displayedFields": ['title', 'body']
},
},
props={"parametrized": True}
props={"parametrized": True},
title="Template de clause"
)
class Config:
title = 'Clause'
class ContractTemplate(CrudDocument):
name: str
title: str
"""
Modèle de contrat à décliner
"""
name: str = Field(title="Nom")
title: str = Field(title="Titre")
label: str = ""
parties: List[PartyTemplate] = []
parties: List[PartyTemplate] = Field(default=[], title="Parties")
provisions: List[ProvisionTemplateReference] = Field(
default=[],
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"
)
@validator("label", always=True)
@@ -82,3 +103,6 @@ class ContractTemplate(CrudDocument):
class Settings(CrudDocument.Settings):
fulltext_search = ['name', 'title']
class Config:
title = 'Template de contrat'

View File

@@ -11,15 +11,23 @@ class ContractTemplateRead(ContractTemplate):
class ContractTemplateCreate(Writer):
name: str
title: str
parties: List[PartyTemplate] = []
name: str = Field(title="Nom")
title: str = Field(title="Titre")
parties: List[PartyTemplate] = Field(default=[], title="Parties")
provisions: List[ProvisionTemplateReference] = Field(
default=[],
props={"items-per-row": "1", "numbered": True},
title="Clauses"
)
variables: List[DictionaryEntry] = Field(
default=[],
format="dictionary",
props={"required": False}
props={"required": False},
title="Variables"
)
provisions: List[ProvisionTemplateReference] = []
class Config:
title = 'Template de Contrat'
class ContractTemplateUpdate(ContractTemplateCreate):
@@ -31,9 +39,12 @@ class ProvisionTemplateRead(ProvisionTemplate):
class ProvisionTemplateCreate(Writer):
name: str
title: str = RichtextSingleline()
body: str = RichtextMultiline()
name: str = Field(title="Nom")
title: str = RichtextSingleline(title="Titre")
body: str = RichtextMultiline(title="Corps")
class Config:
title = 'Template de Clause'
class ProvisionTemplateUpdate(ProvisionTemplateCreate):