Finishing ForeignKey Migration and handling of their None values

This commit is contained in:
2025-05-03 21:51:56 +02:00
parent 4f0d943e04
commit 90a46ada2d
3 changed files with 14 additions and 45 deletions

View File

@@ -27,11 +27,11 @@ class ContractDraftStatus(str, Enum):
class DraftParty(BaseModel):
entity_id: PydanticObjectId = ForeignKey("entities", "Entity", default="", title="Partie")
entity: SkipJsonSchema[Entity] = Field(default=None, exclude=True, )
entity_id: Optional[PydanticObjectId] = ForeignKey("entities", "Entity", default=None, title="Partie")
part: str = Field(title="Rôle")
representative_id: PydanticObjectId = ForeignKey("entities", "Entity", default="", title="Représentant")
representative_id: Optional[PydanticObjectId] = ForeignKey("entities", "Entity", default=None, title="Représentant")
entity: SkipJsonSchema[Entity] = Field(default=None, exclude=True, )
class Config:
title = 'Partie'
@@ -64,7 +64,7 @@ class ContractProvisionTemplateReference(BaseModel):
"ProvisionTemplate",
displayed_fields=['title', 'body'],
props={"parametrized": True},
default="",
default=None,
title="Template de clause"
)

View File

@@ -4,7 +4,7 @@ from typing import List, Literal, Optional
from pydantic import Field, BaseModel
from beanie import Indexed, PydanticObjectId
from firm.core.models import CrudDocument
from firm.core.models import CrudDocument, ForeignKey
from firm.core.filter import Filter, FilterSchema
@@ -39,16 +39,7 @@ class Individual(EntityType):
class Employee(BaseModel):
position: Indexed(str) = Field(title='Poste')
entity_id: PydanticObjectId = Field(
foreignKey={
"reference": {
"resource": "entities",
"schema": "Entity",
"condition": "entity_data.type=individual"
}
},
title='Employé'
)
entity_id: PydanticObjectId = ForeignKey("entities", "Entity", title='Employé')
class Config:
title = 'Fiche Employé'

View File

@@ -1,35 +1,17 @@
from typing import List
from typing import List, Optional
from html import unescape
from beanie import PydanticObjectId
from pydantic import BaseModel, Field
from firm.core.models import CrudDocument, RichtextMultiline, RichtextSingleline, DictionaryEntry
from firm.core.models import CrudDocument, RichtextMultiline, RichtextSingleline, DictionaryEntry, ForeignKey
from firm.core.filter import Filter, FilterSchema
class PartyTemplate(BaseModel):
entity_id: PydanticObjectId = Field(
foreignKey={
"reference": {
"resource": "entities",
"schema": "Entity",
}
},
default="",
title="Partie"
)
entity_id: Optional[PydanticObjectId] = ForeignKey("entities", "Entity", default=None, title="Partie")
part: str = Field(title="Rôle")
representative_id: PydanticObjectId = Field(
foreignKey={
"reference": {
"resource": "entities",
"schema": "Entity",
}
},
default="",
title="Représentant"
)
representative_id: Optional[PydanticObjectId] = ForeignKey("entities", "Entity", default=None, title="Représentant")
class Config:
title = 'Partie'
@@ -62,14 +44,10 @@ class ProvisionTemplate(CrudDocument):
class ProvisionTemplateReference(BaseModel):
provision_template_id: PydanticObjectId = Field(
foreignKey={
"reference": {
"resource": "templates/provisions",
"schema": "ProvisionTemplate",
"displayedFields": ['title', 'body']
},
},
provision_template_id: PydanticObjectId = ForeignKey(
"templates/provisions",
"TemplateProvision",
['title', 'body'],
props={"parametrized": True},
title="Template de clause"
)