Coverage for opt/mealie/lib/python3.12/site-packages/mealie/schema/admin/settings.py: 70%
21 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 03:04 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 03:04 +0000
1from typing import Annotated
3from pydantic import ConfigDict, Field, field_validator
4from slugify import slugify
6from mealie.schema._mealie import MealieModel
8from ..recipe.recipe_category import RecipeCategoryResponse
11class CustomPageBase(MealieModel):
12 name: str
13 slug: Annotated[str | None, Field(validate_default=True)]
14 position: int
15 categories: list[RecipeCategoryResponse] = []
16 model_config = ConfigDict(from_attributes=True)
18 @field_validator("slug", mode="before")
19 def validate_slug(slug: str, values):
20 name: str = values["name"]
21 calc_slug: str = slugify(name)
23 if slug != calc_slug:
24 slug = calc_slug
26 return slug
29class CustomPageOut(CustomPageBase):
30 id: int
31 model_config = ConfigDict(from_attributes=True)