minor improvements

This commit is contained in:
2023-01-28 20:47:02 +01:00
parent 6f87075711
commit 6218245ea8
5 changed files with 59 additions and 22 deletions

34
back/app/core/models.py Normal file
View File

@@ -0,0 +1,34 @@
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)

View File

@@ -1,5 +1,5 @@
from beanie import PydanticObjectId
from beanie.operators import And, Or, RegEx, Eq
from beanie.operators import And, RegEx, Eq
from fastapi import APIRouter, HTTPException
from fastapi_paginate import Page, Params, add_pagination
@@ -18,6 +18,10 @@ def parse_sort(sort_by):
return fields
def Or(filters):
return {'$or': filters}
def parse_query(query: str, model):
if query is None:
return {}
@@ -40,7 +44,10 @@ def parse_query(query: str, model):
and_array.append(operand)
return And(and_array) if len(and_array) > 1 else and_array[0]
if and_array:
return And(and_array) if len(and_array) > 1 else and_array[0]
else:
return {}
def get_crud_router(model, model_create, model_read, model_update):