mirror of
https://github.com/hay-kot/mealie.git
synced 2025-08-22 22:43:34 -07:00
cleanup + tag models
This commit is contained in:
parent
ff4ea3d6b6
commit
26b6dc6d4f
13 changed files with 23 additions and 66 deletions
|
@ -1,4 +1,4 @@
|
||||||
from schema.category import RecipeCategoryResponse
|
from schema.category import RecipeCategoryResponse, RecipeTagResponse
|
||||||
from schema.meal import MealPlanInDB
|
from schema.meal import MealPlanInDB
|
||||||
from schema.recipe import Recipe
|
from schema.recipe import Recipe
|
||||||
from schema.settings import SiteSettings as SiteSettingsSchema
|
from schema.settings import SiteSettings as SiteSettingsSchema
|
||||||
|
@ -44,7 +44,8 @@ class _Tags(BaseDocument):
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
self.primary_key = "slug"
|
self.primary_key = "slug"
|
||||||
self.sql_model = Tag
|
self.sql_model = Tag
|
||||||
self.orm_mode = False
|
self.orm_mode = True
|
||||||
|
self.schema = RecipeTagResponse
|
||||||
|
|
||||||
|
|
||||||
class _Meals(BaseDocument):
|
class _Meals(BaseDocument):
|
||||||
|
|
|
@ -116,7 +116,6 @@ class BaseDocument:
|
||||||
.all()
|
.all()
|
||||||
)
|
)
|
||||||
|
|
||||||
if self.orm_mode:
|
|
||||||
if limit == 1:
|
if limit == 1:
|
||||||
try:
|
try:
|
||||||
return self.schema.from_orm(result[0])
|
return self.schema.from_orm(result[0])
|
||||||
|
@ -124,16 +123,6 @@ class BaseDocument:
|
||||||
return None
|
return None
|
||||||
return [self.schema.from_orm(x) for x in result]
|
return [self.schema.from_orm(x) for x in result]
|
||||||
|
|
||||||
db_entries = [x.dict() for x in result]
|
|
||||||
|
|
||||||
if limit == 1:
|
|
||||||
try:
|
|
||||||
return db_entries[0]
|
|
||||||
except IndexError:
|
|
||||||
return None
|
|
||||||
|
|
||||||
return db_entries
|
|
||||||
|
|
||||||
def create(self, session: Session, document: dict) -> dict:
|
def create(self, session: Session, document: dict) -> dict:
|
||||||
"""Creates a new database entry for the given SQL Alchemy Model.
|
"""Creates a new database entry for the given SQL Alchemy Model.
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,3 @@ class ApiExtras(SqlAlchemyBase):
|
||||||
def __init__(self, key, value) -> None:
|
def __init__(self, key, value) -> None:
|
||||||
self.key_name = key
|
self.key_name = key
|
||||||
self.value = value
|
self.value = value
|
||||||
|
|
||||||
def dict(self):
|
|
||||||
return {self.key_name: self.value}
|
|
|
@ -11,6 +11,3 @@ class RecipeIngredient(SqlAlchemyBase):
|
||||||
|
|
||||||
def update(self, ingredient):
|
def update(self, ingredient):
|
||||||
self.ingredient = ingredient
|
self.ingredient = ingredient
|
||||||
|
|
||||||
def to_str(self):
|
|
||||||
return self.ingredient
|
|
||||||
|
|
|
@ -9,8 +9,3 @@ class RecipeInstruction(SqlAlchemyBase):
|
||||||
position = sa.Column(sa.Integer)
|
position = sa.Column(sa.Integer)
|
||||||
type = sa.Column(sa.String, default="")
|
type = sa.Column(sa.String, default="")
|
||||||
text = sa.Column(sa.String)
|
text = sa.Column(sa.String)
|
||||||
|
|
||||||
def dict(self):
|
|
||||||
data = {"@type": self.type, "text": self.text}
|
|
||||||
|
|
||||||
return data
|
|
||||||
|
|
|
@ -13,5 +13,3 @@ class Note(SqlAlchemyBase):
|
||||||
self.title = title
|
self.title = title
|
||||||
self.text = text
|
self.text = text
|
||||||
|
|
||||||
def dict(self):
|
|
||||||
return {"title": self.title, "text": self.text}
|
|
||||||
|
|
|
@ -29,12 +29,3 @@ class Nutrition(SqlAlchemyBase):
|
||||||
self.sodiumContent = sodiumContent
|
self.sodiumContent = sodiumContent
|
||||||
self.sugarContent = sugarContent
|
self.sugarContent = sugarContent
|
||||||
|
|
||||||
def dict(self) -> dict:
|
|
||||||
return {
|
|
||||||
"calories": self.calories,
|
|
||||||
"fatContent": self.fatContent,
|
|
||||||
"fiberContent": self.fiberContent,
|
|
||||||
"proteinContent": self.proteinContent,
|
|
||||||
"sodiumContent": self.sodiumContent,
|
|
||||||
"sugarContent": self.sugarContent,
|
|
||||||
}
|
|
||||||
|
|
|
@ -27,20 +27,10 @@ class Tag(SqlAlchemyBase):
|
||||||
assert not name == ""
|
assert not name == ""
|
||||||
return name
|
return name
|
||||||
|
|
||||||
def to_str(self):
|
|
||||||
return self.name
|
|
||||||
|
|
||||||
def __init__(self, name) -> None:
|
def __init__(self, name) -> None:
|
||||||
self.name = name.strip()
|
self.name = name.strip()
|
||||||
self.slug = slugify(self.name)
|
self.slug = slugify(self.name)
|
||||||
|
|
||||||
def dict(self):
|
|
||||||
return {
|
|
||||||
"id": self.id,
|
|
||||||
"slug": self.slug,
|
|
||||||
"name": self.name,
|
|
||||||
"recipes": [x.dict() for x in self.recipes],
|
|
||||||
}
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def create_if_not_exist(session, name: str = None):
|
def create_if_not_exist(session, name: str = None):
|
||||||
|
|
|
@ -15,13 +15,19 @@ class SiteSettings(SqlAlchemyBase, BaseMixins):
|
||||||
single_parent=True,
|
single_parent=True,
|
||||||
)
|
)
|
||||||
show_recent = sa.Column(sa.Boolean, default=True)
|
show_recent = sa.Column(sa.Boolean, default=True)
|
||||||
|
cards_per_section = sa.Column(sa.Integer)
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self, session: Session = None, language="en", categories: list = [], show_recent=True
|
self,
|
||||||
|
session: Session = None,
|
||||||
|
language="en",
|
||||||
|
categories: list = [],
|
||||||
|
show_recent=True,
|
||||||
|
cards_per_section: int = 9,
|
||||||
) -> None:
|
) -> None:
|
||||||
session.commit()
|
session.commit()
|
||||||
self.language = language
|
self.language = language
|
||||||
|
self.cards_per_section = cards_per_section
|
||||||
self.show_recent = show_recent
|
self.show_recent = show_recent
|
||||||
self.categories = [
|
self.categories = [
|
||||||
Category.create_if_not_exist(session=session, name=cat.get("name"))
|
Category.create_if_not_exist(session=session, name=cat.get("name"))
|
||||||
|
|
|
@ -16,10 +16,6 @@ class SiteThemeModel(SqlAlchemyBase):
|
||||||
self.colors.update(**colors)
|
self.colors.update(**colors)
|
||||||
return self.dict()
|
return self.dict()
|
||||||
|
|
||||||
def dict(self):
|
|
||||||
data = {"name": self.name, "colors": self.colors.dict()}
|
|
||||||
return data
|
|
||||||
|
|
||||||
|
|
||||||
class ThemeColorsModel(SqlAlchemyBase):
|
class ThemeColorsModel(SqlAlchemyBase):
|
||||||
__tablename__ = "theme_colors"
|
__tablename__ = "theme_colors"
|
||||||
|
@ -50,15 +46,3 @@ class ThemeColorsModel(SqlAlchemyBase):
|
||||||
self.info = info
|
self.info = info
|
||||||
self.warning = warning
|
self.warning = warning
|
||||||
self.error = error
|
self.error = error
|
||||||
|
|
||||||
def dict(self):
|
|
||||||
data = {
|
|
||||||
"primary": self.primary,
|
|
||||||
"accent": self.accent,
|
|
||||||
"secondary": self.secondary,
|
|
||||||
"success": self.success,
|
|
||||||
"info": self.info,
|
|
||||||
"warning": self.warning,
|
|
||||||
"error": self.error,
|
|
||||||
}
|
|
||||||
return data
|
|
||||||
|
|
|
@ -19,3 +19,11 @@ class RecipeCategoryResponse(CategoryBase):
|
||||||
|
|
||||||
class Config:
|
class Config:
|
||||||
schema_extra = {"example": {"id": 1, "name": "dinner", "recipes": [{}]}}
|
schema_extra = {"example": {"id": 1, "name": "dinner", "recipes": [{}]}}
|
||||||
|
|
||||||
|
|
||||||
|
class TagBase(CategoryBase):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class RecipeTagResponse(TagBase):
|
||||||
|
pass
|
||||||
|
|
|
@ -8,6 +8,7 @@ from schema.category import CategoryBase
|
||||||
class SiteSettings(CamelModel):
|
class SiteSettings(CamelModel):
|
||||||
language: str = "en"
|
language: str = "en"
|
||||||
show_recent: bool = True
|
show_recent: bool = True
|
||||||
|
cards_per_section: int = 9
|
||||||
categories: Optional[list[CategoryBase]] = []
|
categories: Optional[list[CategoryBase]] = []
|
||||||
|
|
||||||
class Config:
|
class Config:
|
||||||
|
|
|
@ -5,7 +5,7 @@ class Colors(BaseModel):
|
||||||
primary: str = "#E58325"
|
primary: str = "#E58325"
|
||||||
accent: str = "#00457A"
|
accent: str = "#00457A"
|
||||||
secondary: str = "#973542"
|
secondary: str = "#973542"
|
||||||
success: str = "#5AB1BB"
|
success: str = "#4CAF50"
|
||||||
info: str = "#4990BA"
|
info: str = "#4990BA"
|
||||||
warning: str = "#FF4081"
|
warning: str = "#FF4081"
|
||||||
error: str = "#EF5350"
|
error: str = "#EF5350"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue