Full Working static multi tenant

This commit is contained in:
ewandor committed 2025-04-01 00:29:43 +02:00
1 parent 50fdf22afc
commit 59cc709ed5
24 files changed
+327 -244

No files matched your search

+27 -10
View File
@@ -1,9 +1,10 @@
from typing import List
from typing import List, Optional
from html import unescape
from pydantic import BaseModel, Field, validator
from pydantic import BaseModel, Field
from ..core.models import CrudDocument, RichtextMultiline, RichtextSingleline, DictionaryEntry
from ..core.filter import Filter
class PartyTemplate(BaseModel):
@@ -47,12 +48,10 @@ class ProvisionTemplate(CrudDocument):
name: str = Field(title="Nom")
title: str = RichtextSingleline(title="Titre")
label: str = ""
body: str = RichtextMultiline(title="Corps")
@validator("label", always=True)
def generate_label(cls, v, values, **kwargs):
return "{} - \"{}\"".format(values['name'], unescape(remove_html_tags(values['title'])))
def compute_label(self) -> str:
return f"{self.name} - \"{unescape(remove_html_tags(self.title))}\""
class Settings(CrudDocument.Settings):
fulltext_search = ['name', 'title', 'body']
@@ -84,7 +83,6 @@ class ContractTemplate(CrudDocument):
"""
name: str = Field(title="Nom")
title: str = Field(title="Titre")
label: str = ""
parties: List[PartyTemplate] = Field(default=[], title="Parties")
provisions: List[ProvisionTemplateReference] = Field(
default=[],
@@ -97,12 +95,31 @@ class ContractTemplate(CrudDocument):
title="Variables"
)
@validator("label", always=True)
def generate_label(cls, v, values, **kwargs):
return "{} - \"{}\"".format(values['name'], unescape(remove_html_tags(values['title'])))
def compute_label(self) -> str:
return f"{self.name} - \"{unescape(remove_html_tags(self.title))}\""
class Settings(CrudDocument.Settings):
fulltext_search = ['name', 'title']
class Config:
title = 'Template de contrat'
class ContractTemplateFilters(Filter):
name__like: Optional[str] = None
order_by: Optional[list[str]] = None
class Constants(Filter.Constants):
model = ContractTemplate
search_model_fields = ["name"]
class ProvisionTemplateFilters(Filter):
name__like: Optional[str] = None
order_by: Optional[list[str]] = None
class Constants(Filter.Constants):
model = ProvisionTemplate
search_model_fields = ["name"]
+2 -2
View File
@@ -1,5 +1,5 @@
from ..core.routes import get_crud_router
from .models import ContractTemplate
from .models import ContractTemplate, ContractTemplateFilters
from .schemas import ContractTemplateCreate, ContractTemplateRead, ContractTemplateUpdate
router = get_crud_router(ContractTemplate, ContractTemplateCreate, ContractTemplateRead, ContractTemplateUpdate)
router = get_crud_router(ContractTemplate, ContractTemplateCreate, ContractTemplateRead, ContractTemplateUpdate, ContractTemplateFilters)
+2 -2
View File
@@ -1,5 +1,5 @@
from ..core.routes import get_crud_router
from .models import ProvisionTemplate
from .models import ProvisionTemplate, ProvisionTemplateFilters
from .schemas import ProvisionTemplateCreate, ProvisionTemplateRead, ProvisionTemplateUpdate
router = get_crud_router(ProvisionTemplate, ProvisionTemplateCreate, ProvisionTemplateRead, ProvisionTemplateUpdate)
router = get_crud_router(ProvisionTemplate, ProvisionTemplateCreate, ProvisionTemplateRead, ProvisionTemplateUpdate, ProvisionTemplateFilters)
+3 -3
View File
@@ -2,11 +2,11 @@ from pydantic import Field
from typing import List
from .models import ContractTemplate, ProvisionTemplate, PartyTemplate, ProvisionTemplateReference, DictionaryEntry
from ..core.schemas import Writer
from ..core.schemas import Writer, Reader
from ..core.models import RichtextMultiline, RichtextSingleline
class ContractTemplateRead(ContractTemplate):
class ContractTemplateRead(Reader, ContractTemplate):
pass
@@ -34,7 +34,7 @@ class ContractTemplateUpdate(ContractTemplateCreate):
pass
class ProvisionTemplateRead(ProvisionTemplate):
class ProvisionTemplateRead(Reader, ProvisionTemplate):
pass