mirror of
https://github.com/mealie-recipes/mealie.git
synced 2026-02-16 12:53:12 -05:00
feat: Simplify Default Layout Logic and Add Household.name To Cookbooks API (#6243)
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
# This file is auto-generated by gen_schema_exports.py
|
||||
from .cookbook import CookBookPagination, CreateCookBook, ReadCookBook, SaveCookBook, UpdateCookBook
|
||||
from .cookbook import CookbookHousehold, CookBookPagination, CreateCookBook, ReadCookBook, SaveCookBook, UpdateCookBook
|
||||
|
||||
__all__ = [
|
||||
"CookBookPagination",
|
||||
"CookbookHousehold",
|
||||
"CreateCookBook",
|
||||
"ReadCookBook",
|
||||
"SaveCookBook",
|
||||
|
||||
@@ -3,8 +3,11 @@ from typing import Annotated
|
||||
import sqlalchemy as sa
|
||||
from pydantic import UUID4, ConfigDict, Field, ValidationInfo, field_validator
|
||||
from slugify import slugify
|
||||
from sqlalchemy.orm import joinedload
|
||||
from sqlalchemy.orm.interfaces import LoaderOption
|
||||
|
||||
from mealie.core.root_logger import get_logger
|
||||
from mealie.db.models.household.cookbook import CookBook
|
||||
from mealie.db.models.recipe import RecipeModel
|
||||
from mealie.schema._mealie import MealieModel
|
||||
from mealie.schema.response.pagination import PaginationBase
|
||||
@@ -13,6 +16,12 @@ from mealie.schema.response.query_filter import QueryFilterBuilder, QueryFilterJ
|
||||
logger = get_logger()
|
||||
|
||||
|
||||
class CookbookHousehold(MealieModel):
|
||||
id: UUID4
|
||||
name: str
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
|
||||
class CreateCookBook(MealieModel):
|
||||
name: str
|
||||
description: str = ""
|
||||
@@ -62,6 +71,7 @@ class UpdateCookBook(SaveCookBook):
|
||||
|
||||
class ReadCookBook(UpdateCookBook):
|
||||
query_filter: Annotated[QueryFilterJSON, Field(validate_default=True)] = None # type: ignore
|
||||
household: CookbookHousehold | None = None
|
||||
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
@@ -80,6 +90,10 @@ class ReadCookBook(UpdateCookBook):
|
||||
logger.exception(f"Invalid query filter string: {query_filter_string}")
|
||||
return QueryFilterJSON()
|
||||
|
||||
@classmethod
|
||||
def loader_options(cls) -> list[LoaderOption]:
|
||||
return [joinedload(CookBook.household)]
|
||||
|
||||
|
||||
class CookBookPagination(PaginationBase):
|
||||
items: list[ReadCookBook]
|
||||
|
||||
Reference in New Issue
Block a user