mirror of
https://github.com/hay-kot/mealie.git
synced 2025-08-22 14:33:33 -07:00
delete assets when removed
This commit is contained in:
parent
3dd3baf2c9
commit
64ca58de61
2 changed files with 18 additions and 15 deletions
|
@ -62,8 +62,7 @@ def update_recipe(
|
||||||
recipe: Recipe = db.recipes.update(session, recipe_slug, data.dict())
|
recipe: Recipe = db.recipes.update(session, recipe_slug, data.dict())
|
||||||
print(recipe.assets)
|
print(recipe.assets)
|
||||||
|
|
||||||
if recipe_slug != recipe.slug:
|
check_assets(original_slug=recipe_slug, recipe=recipe)
|
||||||
check_assets(original_slug=recipe_slug, recipe=recipe)
|
|
||||||
|
|
||||||
return recipe
|
return recipe
|
||||||
|
|
||||||
|
@ -80,8 +79,8 @@ def patch_recipe(
|
||||||
recipe: Recipe = db.recipes.patch(
|
recipe: Recipe = db.recipes.patch(
|
||||||
session, recipe_slug, new_data=data.dict(exclude_unset=True, exclude_defaults=True)
|
session, recipe_slug, new_data=data.dict(exclude_unset=True, exclude_defaults=True)
|
||||||
)
|
)
|
||||||
if recipe_slug != recipe.slug:
|
|
||||||
check_assets(original_slug=recipe_slug, recipe=recipe)
|
check_assets(original_slug=recipe_slug, recipe=recipe)
|
||||||
|
|
||||||
return recipe
|
return recipe
|
||||||
|
|
||||||
|
|
|
@ -8,20 +8,24 @@ from mealie.schema.recipe import Recipe
|
||||||
logger = get_logger()
|
logger = get_logger()
|
||||||
|
|
||||||
|
|
||||||
def check_assets(original_slug, recipe: Recipe) -> Path:
|
def check_assets(original_slug, recipe: Recipe) -> None:
|
||||||
if original_slug == recipe.slug:
|
if original_slug != recipe.slug:
|
||||||
return recipe.assets
|
current_dir = app_dirs.RECIPE_DATA_DIR.joinpath(original_slug)
|
||||||
|
|
||||||
current_dir = app_dirs.RECIPE_DATA_DIR.joinpath(original_slug)
|
try:
|
||||||
|
copytree(current_dir, recipe.directory, dirs_exist_ok=True)
|
||||||
|
|
||||||
try:
|
except FileNotFoundError:
|
||||||
copytree(current_dir, recipe.directory, dirs_exist_ok=True)
|
logger.error(f"Recipe Directory not Found: {original_slug}")
|
||||||
|
logger.info(f"Renaming Recipe Directory: {original_slug} -> {recipe.slug}")
|
||||||
|
|
||||||
except FileNotFoundError:
|
all_asset_files = [x.file_name for x in recipe.assets]
|
||||||
logger.error(f"Recipe Directory not Found: {original_slug}")
|
for file in recipe.asset_dir.iterdir():
|
||||||
logger.info(f"Renaming Recipe Directory: {original_slug} -> {recipe.slug}")
|
file: Path
|
||||||
|
if file.is_dir():
|
||||||
return current_dir.absolute()
|
continue
|
||||||
|
if file.name not in all_asset_files:
|
||||||
|
file.unlink()
|
||||||
|
|
||||||
|
|
||||||
def delete_assets(recipe_slug):
|
def delete_assets(recipe_slug):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue