Full Working static multi tenant

This commit is contained in:
2025-04-01 00:29:43 +02:00
parent 50fdf22afc
commit 59cc709ed5
24 changed files with 327 additions and 244 deletions

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"]