recipe updates

This commit is contained in:
Hayden 2021-01-15 12:06:21 -09:00
commit 3482200188
4 changed files with 40 additions and 35 deletions

Binary file not shown.

View file

@ -170,7 +170,6 @@ class BaseDocument:
.one()
)
print(result.dict())
session.delete(result)
session.commit()

View file

@ -3,7 +3,7 @@ from settings import USE_MONGO, USE_SQL
from db.db_base import BaseDocument
from db.mongo.recipe_models import RecipeDocument
from db.sql.db_session import create_session
from db.sql.recipe_models import RecipeModel
from db.sql.recipe_models import RecipeIngredient, RecipeModel
class _Recipes(BaseDocument):
@ -49,16 +49,14 @@ class _Recipes(BaseDocument):
return new_data.get("slug")
elif USE_SQL:
# data = self.save_new(new_data)
# session, recipe = self._query_one(match_value=slug)
session = self.create_session()
session.merge((self.sql_model(**new_data)))
# recipe_dict = recipe.dict()
# session.commit()
session, recipe = self._query_one(match_value=slug)
recipe.update(session=session, **new_data)
recipe_dict = recipe.dict()
session.commit()
session.close()
return "string"
return recipe_dict
def update_image(self, slug: str, extension: str) -> None:
if USE_MONGO:

View file

@ -87,26 +87,28 @@ class RecipeModel(SqlAlchemyBase):
image = sa.Column(sa.String)
recipeYield = sa.Column(sa.String)
recipeIngredient: List[RecipeIngredient] = orm.relationship(
"RecipeIngredient", cascade="all, delete", order_by="RecipeIngredient.position"
"RecipeIngredient", cascade="all, delete"
)
recipeInstructions: List[RecipeInstruction] = orm.relationship(
"RecipeInstruction",
cascade="all, delete",
order_by="RecipeInstruction.position",
)
totalTime = sa.Column(sa.String)
# Mealie Specific
slug = sa.Column(sa.String, index=True, unique=True)
categories: List[Category] = orm.relationship(
"Category", cascade="all, delete", order_by="Category.position"
"Category",
cascade="all, delete",
)
tags: List[Tag] = orm.relationship(
"Tag", cascade="all, delete", order_by="Tag.position"
"Tag",
cascade="all, delete",
)
dateAdded = sa.Column(sa.Date, default=date.today)
notes: List[Note] = orm.relationship(
"Note", cascade="all, delete", order_by="Note.position"
"Note",
cascade="all, delete",
)
rating = sa.Column(sa.Integer)
orgURL = sa.Column(sa.String)
@ -170,6 +172,7 @@ class RecipeModel(SqlAlchemyBase):
def update(
self,
session,
name: str = None,
description: str = None,
image: str = None,
@ -191,29 +194,34 @@ class RecipeModel(SqlAlchemyBase):
self.image = image
self.recipeYield = recipeYield
for ingr in recipeIngredient:
self.recipeIngredient
self.recipeIngredient = RecipeModel._update_list_str(
recipeIngredient, self.recipeIngredient, RecipeIngredient
# Deleted Recipe Ingredeints
self.recipeIngredient = [
RecipeIngredient(ingredient=ingr) for ingr in recipeIngredient
]
list_of_tables = [RecipeIngredient, RecipeInstruction, Category, Tag, ApiExtras]
for table in list_of_tables:
session.query(table).filter_by(parent_id=self.id).delete()
self.__init__(
name=name,
description=description,
image=image,
recipeYield=recipeYield,
recipeIngredient=recipeIngredient,
recipeInstructions=recipeInstructions,
totalTime=totalTime,
slug=slug,
categories=categories,
tags=tags,
dateAdded=dateAdded,
notes=notes,
rating=rating,
orgURL=orgURL,
extras=extras,
)
# self.recipeInstructions = recipeInstructions
# self.totalTime = totalTime
# self.slug = slug
# self.categories = categories
# for category in categories:
# if category in self.categories:
# pass
# else:
# self.categories.append(Category(name=category))
# self.tags = tags
# self.dateAdded = dateAdded
# self.notes = notes
# self.rating = rating
# self.orgURL = orgURL
# self.extras = extras
@staticmethod
def _flatten_dict(list_of_dict: List[dict]):