From 84fcdb5f20fc5426680657d26065baf687f6b500 Mon Sep 17 00:00:00 2001 From: Will Miao Date: Fri, 12 Jun 2026 16:49:57 +0800 Subject: [PATCH] fix(recipe): compute folder field on save to prevent reimported recipes disappearing from subfolder grid --- py/services/recipes/persistence_service.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/py/services/recipes/persistence_service.py b/py/services/recipes/persistence_service.py index 49bf7dfb..184268f4 100644 --- a/py/services/recipes/persistence_service.py +++ b/py/services/recipes/persistence_service.py @@ -129,6 +129,18 @@ class RecipePersistenceService: if nsfw_level is not None and isinstance(nsfw_level, int): recipe_data["preview_nsfw_level"] = nsfw_level + # Compute recipe folder relative to recipes root, mirroring + # RecipeScanner._calculate_folder() which is only called during scan/load. + if recipe_scanner.recipes_dir: + recipe_file_dir = os.path.dirname(normalized_image_path) + try: + relative_folder = os.path.relpath(recipe_file_dir, recipe_scanner.recipes_dir) + if relative_folder in (".", ""): + relative_folder = "" + recipe_data["folder"] = relative_folder.replace(os.path.sep, "/") + except Exception: + recipe_data["folder"] = "" + json_filename = f"{recipe_id}.recipe.json" json_path = os.path.join(recipes_dir, json_filename) json_path = os.path.normpath(json_path)