Phasing out Pydantic v1's class Config
This commit is contained in:
@@ -4,7 +4,7 @@ from enum import Enum
|
||||
from uuid import UUID
|
||||
|
||||
from beanie import PydanticObjectId
|
||||
from pydantic import BaseModel, Field
|
||||
from pydantic import BaseModel, Field, ConfigDict
|
||||
from pydantic.json_schema import SkipJsonSchema
|
||||
|
||||
from firm.core.models import CrudDocument, RichtextSingleline, RichtextMultiline, DictionaryEntry, ForeignKey
|
||||
@@ -27,13 +27,13 @@ class ContractDraftStatus(str, Enum):
|
||||
|
||||
|
||||
class DraftParty(BaseModel):
|
||||
model_config = ConfigDict(title='Partie')
|
||||
|
||||
entity_id: Optional[PydanticObjectId] = ForeignKey("entities", "Entity", default=None, title="Partie")
|
||||
part: str = Field(title="Rôle")
|
||||
representative_id: Optional[PydanticObjectId] = ForeignKey("entities", "Entity", default=None, title="Représentant")
|
||||
|
||||
entity: SkipJsonSchema[Entity] = Field(default=None, exclude=True, )
|
||||
class Config:
|
||||
title = 'Partie'
|
||||
|
||||
|
||||
class Party(BaseModel):
|
||||
@@ -49,15 +49,16 @@ class ContractProvisionType(Enum):
|
||||
template = 'template'
|
||||
|
||||
class ProvisionGenuine(BaseModel):
|
||||
model_config = ConfigDict(title='Clause personalisée')
|
||||
|
||||
type: Literal['genuine'] = ContractProvisionType.genuine
|
||||
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):
|
||||
model_config = ConfigDict(title='Template de clause')
|
||||
|
||||
type: Literal['template'] = ContractProvisionType.template
|
||||
provision_template_id: PydanticObjectId = ForeignKey(
|
||||
"templates/provisions",
|
||||
@@ -68,15 +69,11 @@ class ContractProvisionTemplateReference(BaseModel):
|
||||
title="Template de clause"
|
||||
)
|
||||
|
||||
class Config:
|
||||
title = 'Template de clause'
|
||||
|
||||
|
||||
class DraftProvision(BaseModel):
|
||||
provision: ContractProvisionTemplateReference | ProvisionGenuine = Field(..., discriminator='type')
|
||||
model_config = ConfigDict(title='Clause')
|
||||
|
||||
class Config:
|
||||
title = 'Clause'
|
||||
provision: ContractProvisionTemplateReference | ProvisionGenuine = Field(..., discriminator='type')
|
||||
|
||||
|
||||
class Provision(BaseModel):
|
||||
@@ -91,6 +88,7 @@ class ContractDraft(CrudDocument):
|
||||
"""
|
||||
Brouillon de contrat à remplir
|
||||
"""
|
||||
model_config = ConfigDict(title='Brouillon de contrat')
|
||||
|
||||
name: str = Field(title="Nom")
|
||||
title: str = Field(title="Titre")
|
||||
@@ -109,9 +107,6 @@ class ContractDraft(CrudDocument):
|
||||
hour=0, minute=0, second=0)
|
||||
}
|
||||
|
||||
class Config:
|
||||
title = 'Brouillon de contrat'
|
||||
|
||||
async def check_is_ready(self, db):
|
||||
if self.status == ContractDraftStatus.published:
|
||||
return
|
||||
|
||||
@@ -2,7 +2,7 @@ import datetime
|
||||
from typing import List
|
||||
|
||||
from beanie import PydanticObjectId
|
||||
from pydantic import BaseModel, Field
|
||||
from pydantic import BaseModel, Field, ConfigDict
|
||||
|
||||
from firm.contract.models import ContractDraft, DraftProvision, DraftParty, Contract
|
||||
|
||||
@@ -42,32 +42,29 @@ class ContractDraftUpdate(ContractDraftCreate):
|
||||
|
||||
|
||||
class ForeignEntityRead(BaseModel):
|
||||
label: str
|
||||
model_config = ConfigDict(title='Avocat')
|
||||
|
||||
class Config:
|
||||
title = "Avocat"
|
||||
label: str
|
||||
|
||||
|
||||
class PartyRead(BaseModel):
|
||||
model_config = ConfigDict(title='Partie')
|
||||
|
||||
signature_affixed: bool = Field(title='Signature apposée?')
|
||||
signature_uuid: str = Field(props={"display": "signature-link"}, title="Lien vers signature")
|
||||
part: str = Field(title='Rôle')
|
||||
entity: ForeignEntityRead = Field(title='Client')
|
||||
|
||||
class Config:
|
||||
title = "Partie"
|
||||
|
||||
|
||||
class ContractRead(Reader, Contract):
|
||||
model_config = ConfigDict(title='Contrat')
|
||||
|
||||
parties: List[PartyRead] = Field(
|
||||
props={"items_per_row": "2"},
|
||||
title='Parties'
|
||||
)
|
||||
lawyer: ForeignEntityRead
|
||||
|
||||
class Config:
|
||||
title = "Contrat"
|
||||
|
||||
|
||||
class ContractCreate(Writer):
|
||||
date: datetime.date
|
||||
|
||||
Reference in New Issue
Block a user