feat: bulk recipe settings update (#1557)

* extract switches from menu component

* implement bulk updater for settings

* fix browser cache api calls issue

* add frontend for bulk settings modifications
This commit is contained in:
Hayden
2022-08-14 10:37:44 -08:00
committed by GitHub
parent 5cfff75dbe
commit 7adcc86d03
10 changed files with 168 additions and 66 deletions

View File

@@ -4,6 +4,7 @@ from mealie.repos.repository_factory import AllRepositories
from mealie.schema.group.group_exports import GroupDataExport
from mealie.schema.recipe import CategoryBase
from mealie.schema.recipe.recipe_category import TagBase
from mealie.schema.recipe.recipe_settings import RecipeSettings
from mealie.schema.user.user import GroupInDB, PrivateUser
from mealie.services._base_service import BaseService
from mealie.services.exporter import Exporter, RecipeExporter
@@ -47,6 +48,22 @@ class RecipeBulkActionsService(BaseService):
return exports_deleted
def set_settings(self, recipes: list[str], settings: RecipeSettings) -> None:
for slug in recipes:
recipe = self.repos.recipes.get_one(slug)
if recipe is None:
self.logger.error(f"Failed to set settings for recipe {slug}, no recipe found")
settings.locked = recipe.settings.locked
recipe.settings = settings
try:
self.repos.recipes.update(slug, recipe)
except Exception as e:
self.logger.error(f"Failed to set settings for recipe {slug}")
self.logger.error(e)
def assign_tags(self, recipes: list[str], tags: list[TagBase]) -> None:
for slug in recipes:
recipe = self.repos.recipes.get_one(slug)