mirror of
https://github.com/mealie-recipes/mealie.git
synced 2026-01-30 12:33:11 -05:00
feature/mealplanner-rewrite (#417)
* multiple recipes per day * fix update * meal-planner rewrite * disable meal-tests * spacing Co-authored-by: hay-kot <hay-kot@pm.me>
This commit is contained in:
@@ -3,41 +3,16 @@ from typing import Union
|
||||
|
||||
from mealie.db.database import db
|
||||
from mealie.db.db_setup import create_session
|
||||
from mealie.schema.meal import MealIn, MealOut, MealPlanIn, MealPlanInDB, MealPlanProcessed
|
||||
from mealie.schema.meal import MealDayIn, MealPlanIn
|
||||
from mealie.schema.recipe import Recipe
|
||||
from mealie.schema.user import GroupInDB
|
||||
from sqlalchemy.orm.session import Session
|
||||
|
||||
|
||||
def process_meals(session: Session, meal_plan_base: MealPlanIn) -> MealPlanProcessed:
|
||||
meals = []
|
||||
for x, meal in enumerate(meal_plan_base.meals):
|
||||
meal: MealIn
|
||||
try:
|
||||
recipe: Recipe = db.recipes.get(session, meal.slug)
|
||||
|
||||
meal_data = MealOut(
|
||||
slug=recipe.slug,
|
||||
name=recipe.name,
|
||||
date=meal_plan_base.startDate + timedelta(days=x),
|
||||
image=recipe.image,
|
||||
description=recipe.description,
|
||||
)
|
||||
|
||||
except Exception:
|
||||
|
||||
meal_data = MealOut(
|
||||
date=meal_plan_base.startDate + timedelta(days=x),
|
||||
)
|
||||
|
||||
meals.append(meal_data)
|
||||
|
||||
return MealPlanProcessed(
|
||||
group=meal_plan_base.group,
|
||||
meals=meals,
|
||||
startDate=meal_plan_base.startDate,
|
||||
endDate=meal_plan_base.endDate,
|
||||
)
|
||||
def set_mealplan_dates(meal_plan_base: MealPlanIn) -> MealPlanIn:
|
||||
for x, plan_days in enumerate(meal_plan_base.plan_days):
|
||||
plan_days: MealDayIn
|
||||
plan_days.date = meal_plan_base.start_date + timedelta(days=x)
|
||||
|
||||
|
||||
def get_todays_meal(session: Session, group: Union[int, GroupInDB]) -> Recipe:
|
||||
@@ -52,6 +27,7 @@ def get_todays_meal(session: Session, group: Union[int, GroupInDB]) -> Recipe:
|
||||
Returns:
|
||||
Recipe: Pydantic Recipe Object
|
||||
"""
|
||||
|
||||
session = session or create_session()
|
||||
|
||||
if isinstance(group, int):
|
||||
@@ -60,12 +36,12 @@ def get_todays_meal(session: Session, group: Union[int, GroupInDB]) -> Recipe:
|
||||
today_slug = None
|
||||
|
||||
for mealplan in group.mealplans:
|
||||
mealplan: MealPlanInDB
|
||||
for meal in mealplan.meals:
|
||||
meal: MealOut
|
||||
if meal.date == date.today():
|
||||
today_slug = meal.slug
|
||||
break
|
||||
for plan_day in mealplan.plan_days:
|
||||
if plan_day.date == date.today():
|
||||
if plan_day.meals[0].slug and plan_day.meals[0].slug != "":
|
||||
today_slug = plan_day.meals[0].slug
|
||||
else:
|
||||
return plan_day.meals[0]
|
||||
|
||||
if today_slug:
|
||||
return db.recipes.get(session, today_slug)
|
||||
|
||||
Reference in New Issue
Block a user