diff --git a/back/app/contract/models.py b/back/app/contract/models.py index ee09ccca..67779a77 100644 --- a/back/app/contract/models.py +++ b/back/app/contract/models.py @@ -2,7 +2,7 @@ import datetime from typing import List, Literal from enum import Enum -from pydantic import BaseModel, Field +from pydantic import BaseModel, Field, validator from beanie.operators import ElemMatch from ..core.models import CrudDocument, RichtextSingleline, RichtextMultiline, DictionaryEntry @@ -181,6 +181,19 @@ class Contract(CrudDocument): lawyer: Entity = Field(title="Avocat en charge") location: str = Field(title="Lieu") date: datetime.date = Field(title="Date") + label: str = None + + @validator("label", always=True) + def generate_label(cls, v, values, **kwargs): + if not v: + contract_label = values['title'] + for p in values['parties']: + contract_label = contract_label + f" - {p.entity.label}" + + contract_label = contract_label + f" {values['date'].strftime('%m/%d/%Y')}" + return contract_label + + return v class Settings(CrudDocument.Settings): fulltext_search = ['name', 'title']