mirror of
https://github.com/mealie-recipes/mealie.git
synced 2026-02-12 19:03:11 -05:00
feat: Move "on hand" and "last made" to household (#4616)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
This commit is contained in:
@@ -6,6 +6,7 @@ from sqlalchemy.orm import Session
|
||||
|
||||
from mealie.db.db_setup import session_context
|
||||
from mealie.repos.all_repositories import get_repositories
|
||||
from mealie.schema.household.household import HouseholdRecipeUpdate
|
||||
from mealie.schema.meal_plan.new_meal import PlanEntryType
|
||||
from mealie.schema.recipe.recipe import RecipeSummary
|
||||
from mealie.schema.recipe.recipe_timeline_events import RecipeTimelineEventCreate, TimelineEventType
|
||||
@@ -18,12 +19,14 @@ from mealie.services.event_bus_service.event_types import (
|
||||
EventRecipeTimelineEventData,
|
||||
EventTypes,
|
||||
)
|
||||
from mealie.services.household_services.household_service import HouseholdService
|
||||
|
||||
|
||||
def _create_mealplan_timeline_events_for_household(
|
||||
event_time: datetime, session: Session, group_id: UUID4, household_id: UUID4
|
||||
) -> None:
|
||||
repos = get_repositories(session, group_id=group_id, household_id=household_id)
|
||||
household_service = HouseholdService(group_id, household_id, repos)
|
||||
event_bus_service = EventBusService(session=session)
|
||||
|
||||
timeline_events_to_create: list[RecipeTimelineEventCreate] = []
|
||||
@@ -64,7 +67,8 @@ def _create_mealplan_timeline_events_for_household(
|
||||
continue
|
||||
|
||||
# bump up the last made date
|
||||
last_made = mealplan.recipe.last_made
|
||||
household_to_recipe = household_service.get_household_recipe(mealplan.recipe.slug)
|
||||
last_made = household_to_recipe.last_made if household_to_recipe else None
|
||||
if (not last_made or last_made.date() < event_time.date()) and mealplan.recipe_id not in recipes_to_update:
|
||||
recipes_to_update[mealplan.recipe_id] = mealplan.recipe
|
||||
|
||||
@@ -99,6 +103,7 @@ def _create_mealplan_timeline_events_for_household(
|
||||
)
|
||||
|
||||
for recipe in recipes_to_update.values():
|
||||
household_service.set_household_recipe(recipe.slug, HouseholdRecipeUpdate(last_made=event_time))
|
||||
repos.recipes.patch(recipe.slug, {"last_made": event_time})
|
||||
event_bus_service.dispatch(
|
||||
integration_id=DEFAULT_INTEGRATION_ID,
|
||||
|
||||
Reference in New Issue
Block a user