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
|
||||
|
||||
@@ -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):
|
||||
"""
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user