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

@@ -2,20 +2,19 @@ from typing import List, Optional
from html import unescape
from beanie import PydanticObjectId
from pydantic import BaseModel, Field
from pydantic import BaseModel, Field, ConfigDict
from firm.core.models import CrudDocument, RichtextMultiline, RichtextSingleline, DictionaryEntry, ForeignKey
from firm.core.filter import Filter, FilterSchema
class PartyTemplate(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")
class Config:
title = 'Partie'
def remove_html_tags(text):
"""Remove html tags from a string"""
@@ -28,6 +27,7 @@ class ProvisionTemplate(CrudDocument):
"""
Modèle de clause à décliner
"""
model_config = ConfigDict(title="Template de clause")
name: str = Field(title="Nom")
title: str = RichtextSingleline(title="Titre")
@@ -39,11 +39,10 @@ class ProvisionTemplate(CrudDocument):
class Settings(CrudDocument.Settings):
fulltext_search = ['name', 'title', 'body']
class Config:
title = 'Template de clause'
class ProvisionTemplateReference(BaseModel):
model_config = ConfigDict(title="Clause")
provision_template_id: PydanticObjectId = ForeignKey(
"templates/provisions",
"TemplateProvision",
@@ -52,14 +51,13 @@ class ProvisionTemplateReference(BaseModel):
title="Template de clause"
)
class Config:
title = 'Clause'
class ContractTemplate(CrudDocument):
"""
Modèle de contrat à décliner
"""
model_config = ConfigDict(title="Template de contrat")
name: str = Field(title="Nom")
title: str = Field(title="Titre")
parties: List[PartyTemplate] = Field(default=[], title="Parties")
@@ -72,9 +70,6 @@ class ContractTemplate(CrudDocument):
class Settings(CrudDocument.Settings):
fulltext_search = ['name', 'title']
class Config:
title = 'Template de contrat'
class ContractTemplateFilters(FilterSchema):
class Constants(Filter.Constants):

View File

@@ -1,4 +1,4 @@
from pydantic import Field
from pydantic import Field, ConfigDict
from typing import List
from firm.template.models import ContractTemplate, ProvisionTemplate, PartyTemplate, ProvisionTemplateReference, DictionaryEntry
@@ -11,6 +11,8 @@ class ContractTemplateRead(Reader, ContractTemplate):
class ContractTemplateCreate(Writer):
model_config = ConfigDict(title="Template de Contrat")
name: str = Field(title="Nom")
title: str = Field(title="Titre")
parties: List[PartyTemplate] = Field(
@@ -28,9 +30,6 @@ class ContractTemplateCreate(Writer):
title="Variables"
)
class Config:
title = 'Template de Contrat'
class ContractTemplateUpdate(ContractTemplateCreate):
pass
@@ -41,13 +40,12 @@ class ProvisionTemplateRead(Reader, ProvisionTemplate):
class ProvisionTemplateCreate(Writer):
model_config = ConfigDict(title="Template de Clause")
name: str = Field(title="Nom")
title: str = RichtextSingleline(title="Titre")
body: str = RichtextMultiline(title="Corps")
class Config:
title = 'Template de Clause'
class ProvisionTemplateUpdate(ProvisionTemplateCreate):
pass