Phasing out Pydantic v1's class Config

This commit is contained in:
2025-05-03 22:28:41 +02:00
parent 90a46ada2d
commit a9e9f97c14
7 changed files with 45 additions and 66 deletions

View File

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