Moving Dictionary Entry to Core

This commit is contained in:
2023-02-10 19:07:55 +01:00
parent 4f15f75c59
commit a92bae665a
3 changed files with 28 additions and 26 deletions

View File

@@ -1,7 +1,7 @@
from datetime import datetime from datetime import datetime
from beanie import Document from beanie import Document
from pydantic import Field, validator from pydantic import BaseModel, Field, validator
class CrudDocument(Document): class CrudDocument(Document):
@@ -32,18 +32,25 @@ def text_area(*args, **kwargs):
def RichtextMultiline(*args, **kwargs): def RichtextMultiline(*args, **kwargs):
kwargs['props'] = { if 'props' not in kwargs:
"richtext": True, kwargs['props'] = {}
"multiline": True
} kwargs['props']['richtext'] = True
kwargs['props']['multiline'] = True
return Field(*args, **kwargs) return Field(*args, **kwargs)
def RichtextSingleline(*args, **kwargs): def RichtextSingleline(*args, **kwargs):
kwargs['props'] = { if 'props' not in kwargs:
"richtext": True, kwargs['props'] = {}
"multiline": False
} kwargs['props']['richtext'] = True
kwargs['props']['multiline'] = False
return Field(*args, **kwargs) return Field(*args, **kwargs)
class DictionaryEntry(BaseModel):
key: str
value: str = ""

View File

@@ -1,9 +1,9 @@
from typing import List, Dict from typing import List
from html import unescape from html import unescape
from pydantic import BaseModel, Field, validator from pydantic import BaseModel, Field, validator
from ..core.models import CrudDocument, RichtextMultiline, RichtextSingleline from ..core.models import CrudDocument, RichtextMultiline, RichtextSingleline, DictionaryEntry
class PartyTemplate(BaseModel): class PartyTemplate(BaseModel):
@@ -30,7 +30,7 @@ class ProvisionTemplate(CrudDocument):
name: str name: str
title: str = RichtextSingleline() title: str = RichtextSingleline()
label: str = "" label: str = ""
body: str = RichtextMultiline(size=8) body: str = RichtextMultiline()
@validator("label", always=True) @validator("label", always=True)
def generate_label(cls, v, values, **kwargs): def generate_label(cls, v, values, **kwargs):
@@ -53,13 +53,9 @@ class ProvisionTemplateReference(BaseModel):
) )
class DictionaryEntry(BaseModel):
key: str
value: str = ""
class ContractTemplate(CrudDocument): class ContractTemplate(CrudDocument):
name: str name: str
title: str
parties: List[PartyTemplate] = [] parties: List[PartyTemplate] = []
provisions: List[ProvisionTemplateReference] = Field( provisions: List[ProvisionTemplateReference] = Field(
default=[], default=[],

View File

@@ -12,10 +12,7 @@ class ContractTemplateRead(ContractTemplate):
class ContractTemplateCreate(Writer): class ContractTemplateCreate(Writer):
name: str name: str
title: str
class ContractTemplateUpdate(BaseModel):
name: str
parties: List[PartyTemplate] = [] parties: List[PartyTemplate] = []
variables: List[DictionaryEntry] = Field( variables: List[DictionaryEntry] = Field(
default=[], default=[],
@@ -25,6 +22,10 @@ class ContractTemplateUpdate(BaseModel):
provisions: List[ProvisionTemplateReference] = [] provisions: List[ProvisionTemplateReference] = []
class ContractTemplateUpdate(ContractTemplateCreate):
pass
class ProvisionTemplateRead(ProvisionTemplate): class ProvisionTemplateRead(ProvisionTemplate):
pass pass
@@ -32,10 +33,8 @@ class ProvisionTemplateRead(ProvisionTemplate):
class ProvisionTemplateCreate(Writer): class ProvisionTemplateCreate(Writer):
name: str name: str
title: str = RichtextSingleline() title: str = RichtextSingleline()
body: str = RichtextMultiline(size=8) body: str = RichtextMultiline()
class ProvisionTemplateUpdate(BaseModel): class ProvisionTemplateUpdate(ProvisionTemplateCreate):
name: str pass
title: str
body: str