diff --git a/back/app/core/models.py b/back/app/core/models.py index 4882df0f..205f69ba 100644 --- a/back/app/core/models.py +++ b/back/app/core/models.py @@ -1,7 +1,7 @@ from datetime import datetime from beanie import Document -from pydantic import Field, validator +from pydantic import BaseModel, Field, validator class CrudDocument(Document): @@ -32,18 +32,25 @@ def text_area(*args, **kwargs): def RichtextMultiline(*args, **kwargs): - kwargs['props'] = { - "richtext": True, - "multiline": True - } + if 'props' not in kwargs: + kwargs['props'] = {} + + kwargs['props']['richtext'] = True + kwargs['props']['multiline'] = True return Field(*args, **kwargs) def RichtextSingleline(*args, **kwargs): - kwargs['props'] = { - "richtext": True, - "multiline": False - } + if 'props' not in kwargs: + kwargs['props'] = {} + + kwargs['props']['richtext'] = True + kwargs['props']['multiline'] = False return Field(*args, **kwargs) + + +class DictionaryEntry(BaseModel): + key: str + value: str = "" diff --git a/back/app/template/models.py b/back/app/template/models.py index accf7756..7c76deb3 100644 --- a/back/app/template/models.py +++ b/back/app/template/models.py @@ -1,9 +1,9 @@ -from typing import List, Dict +from typing import List from html import unescape from pydantic import BaseModel, Field, validator -from ..core.models import CrudDocument, RichtextMultiline, RichtextSingleline +from ..core.models import CrudDocument, RichtextMultiline, RichtextSingleline, DictionaryEntry class PartyTemplate(BaseModel): @@ -30,7 +30,7 @@ class ProvisionTemplate(CrudDocument): name: str title: str = RichtextSingleline() label: str = "" - body: str = RichtextMultiline(size=8) + body: str = RichtextMultiline() @validator("label", always=True) def generate_label(cls, v, values, **kwargs): @@ -53,13 +53,9 @@ class ProvisionTemplateReference(BaseModel): ) -class DictionaryEntry(BaseModel): - key: str - value: str = "" - - class ContractTemplate(CrudDocument): name: str + title: str parties: List[PartyTemplate] = [] provisions: List[ProvisionTemplateReference] = Field( default=[], diff --git a/back/app/template/schemas.py b/back/app/template/schemas.py index e1c58c7b..28ad7eba 100644 --- a/back/app/template/schemas.py +++ b/back/app/template/schemas.py @@ -12,10 +12,7 @@ class ContractTemplateRead(ContractTemplate): class ContractTemplateCreate(Writer): name: str - - -class ContractTemplateUpdate(BaseModel): - name: str + title: str parties: List[PartyTemplate] = [] variables: List[DictionaryEntry] = Field( default=[], @@ -25,6 +22,10 @@ class ContractTemplateUpdate(BaseModel): provisions: List[ProvisionTemplateReference] = [] +class ContractTemplateUpdate(ContractTemplateCreate): + pass + + class ProvisionTemplateRead(ProvisionTemplate): pass @@ -32,10 +33,8 @@ class ProvisionTemplateRead(ProvisionTemplate): class ProvisionTemplateCreate(Writer): name: str title: str = RichtextSingleline() - body: str = RichtextMultiline(size=8) + body: str = RichtextMultiline() -class ProvisionTemplateUpdate(BaseModel): - name: str - title: str - body: str +class ProvisionTemplateUpdate(ProvisionTemplateCreate): + pass