asset start

This commit is contained in:
hay-kot 2021-04-27 22:13:40 -08:00
commit 3d4a29a2bd
3 changed files with 29 additions and 50 deletions

View file

@ -0,0 +1,20 @@
import sqlalchemy as sa
from mealie.db.models.model_base import SqlAlchemyBase
class RecipeAsset(SqlAlchemyBase):
__tablename__ = "recipe_assets"
id = sa.Column(sa.Integer, primary_key=True)
parent_id = sa.Column(sa.String, sa.ForeignKey("recipes.id"))
name = sa.Column(sa.String)
icon = sa.Column(sa.String)
def __init__(
self,
name=None,
icon=None,
) -> None:
self.name = name
self.icon = icon

View file

@ -6,6 +6,7 @@ import sqlalchemy as sa
import sqlalchemy.orm as orm
from mealie.db.models.model_base import BaseMixins, SqlAlchemyBase
from mealie.db.models.recipe.api_extras import ApiExtras
from mealie.db.models.recipe.assets import RecipeAsset
from mealie.db.models.recipe.category import Category, recipes2categories
from mealie.db.models.recipe.ingredient import RecipeIngredient
from mealie.db.models.recipe.instruction import RecipeInstruction
@ -86,6 +87,7 @@ class RecipeModel(SqlAlchemyBase, BaseMixins):
rating: int = None,
orgURL: str = None,
extras: dict = None,
assets: list = None,
*args,
**kwargs
) -> None:
@ -99,6 +101,7 @@ class RecipeModel(SqlAlchemyBase, BaseMixins):
self.recipeYield = recipeYield
self.recipeIngredient = [RecipeIngredient(ingredient=ingr) for ingr in recipeIngredient]
self.assets = [RecipeAsset(name=a.get("name"), icon=a.get("icon")) for a in assets]
self.recipeInstructions = [
RecipeInstruction(text=instruc.get("text"), title=instruc.get("title"), type=instruc.get("@type", None))
for instruc in recipeInstructions
@ -118,54 +121,7 @@ class RecipeModel(SqlAlchemyBase, BaseMixins):
self.orgURL = orgURL
self.extras = [ApiExtras(key=key, value=value) for key, value in extras.items()]
def update(
self,
session,
name: str = None,
description: str = None,
image: str = None,
recipeYield: str = None,
recipeIngredient: List[str] = None,
recipeInstructions: List[dict] = None,
recipeCuisine: str = None,
totalTime: str = None,
tools: list[str] = [],
prepTime: str = None,
performTime: str = None,
nutrition: dict = None,
slug: str = None,
recipeCategory: List[str] = None,
tags: List[str] = None,
dateAdded: datetime.date = None,
notes: List[dict] = None,
rating: int = None,
orgURL: str = None,
extras: dict = None,
*args,
**kwargs
):
def update(self, *args, **kwargs):
"""Updated a database entry by removing nested rows and rebuilds the row through the __init__ functions"""
self.__init__(
session=session,
name=name,
description=description,
image=image,
recipeYield=recipeYield,
recipeIngredient=recipeIngredient,
recipeInstructions=recipeInstructions,
totalTime=totalTime,
recipeCuisine=recipeCuisine,
prepTime=prepTime,
performTime=performTime,
nutrition=nutrition,
tools=tools,
slug=slug,
recipeCategory=recipeCategory,
tags=tags,
dateAdded=dateAdded,
notes=notes,
rating=rating,
orgURL=orgURL,
extras=extras,
)
self.__init__(*args, **kwargs)

View file

@ -25,7 +25,9 @@ class RecipeStep(BaseModel):
class RecipeAsset(BaseModel):
name: str
icon: str
path: str
class Config:
orm_mode = True
class Nutrition(BaseModel):
@ -76,6 +78,7 @@ class Recipe(RecipeSummary):
performTime: Optional[str] = None
# Mealie Specific
assets: Optional[list[RecipeAsset]] = []
dateAdded: Optional[datetime.date]
notes: Optional[List[RecipeNote]] = []
orgURL: Optional[str]