35 lines
851 B
Python
35 lines
851 B
Python
from datetime import datetime
|
|
|
|
from beanie import Document
|
|
from pydantic import Field, validator
|
|
|
|
|
|
class CrudDocument(Document):
|
|
_id: str
|
|
created_at: datetime = Field(default=datetime.utcnow(), nullable=False)
|
|
updated_at: datetime = Field(default_factory=datetime.utcnow, nullable=False)
|
|
|
|
@validator("label", always=True, check_fields=False)
|
|
def generate_label(cls, v, values, **kwargs):
|
|
return v
|
|
|
|
class Settings:
|
|
fulltext_search = []
|
|
|
|
|
|
def text_area(*args, **kwargs):
|
|
kwargs['widget'] = {
|
|
"formlyConfig": {
|
|
"type": "textarea",
|
|
"props": {
|
|
"placeholder": "Leaving this field empty will cause formData property to be `null`",
|
|
"rows": kwargs['size'] if 'size' in kwargs else 10
|
|
}
|
|
}
|
|
}
|
|
|
|
return Field(*args, **kwargs)
|
|
|
|
|
|
|