Feature/user seedable foods (#1176)

* remove odd ingredients

* UI Elements for food

* update translated percentage

* spek -> speck

* generate types

* seeder api endpoints + tests

* implement foods seeder UI

* localize some food strings
This commit is contained in:
Hayden
2022-05-01 12:45:50 -08:00
committed by GitHub
parent 67178f9b74
commit d6e2b4ab85
60 changed files with 478 additions and 172 deletions

View File

@@ -13,7 +13,7 @@ def fix_slug_food_names(db: AllRepositories):
logger = root_logger.get_logger("init_db")
if not food:
logger.info("No food found with slug: '{}' skipping fix".format(check_for_food))
logger.info(f"No food found with slug: '{check_for_food}' skipping fix")
return
all_foods = db.ingredient_foods.get_all()
@@ -23,5 +23,5 @@ def fix_slug_food_names(db: AllRepositories):
for food in all_foods:
if food.name in seed_foods:
food.name = seed_foods[food.name]
logger.info("Updating food: {}".format(food.name))
logger.info(f"Updating food: {food.name}")
db.ingredient_foods.update(food.id, food)

View File

@@ -14,7 +14,7 @@ from mealie.db.fixes.fix_slug_foods import fix_slug_food_names
from mealie.repos.all_repositories import get_repositories
from mealie.repos.repository_factory import AllRepositories
from mealie.repos.seed.init_users import default_user_init
from mealie.repos.seed.seeders import IngredientFoodsSeeder, IngredientUnitsSeeder, MultiPurposeLabelSeeder
from mealie.repos.seed.seeders import IngredientUnitsSeeder, MultiPurposeLabelSeeder
from mealie.schema.user.user import GroupBase
from mealie.services.group_services.group_service import GroupService
@@ -32,7 +32,6 @@ def init_db(db: AllRepositories) -> None:
seeders = [
MultiPurposeLabelSeeder(db, group_id=group_id),
IngredientFoodsSeeder(db, group_id=group_id),
IngredientUnitsSeeder(db, group_id=group_id),
]
@@ -63,11 +62,11 @@ def db_is_at_head(alembic_cfg: config.Config) -> bool:
return set(context.get_current_heads()) == set(directory.get_heads())
def safe_try(name: str, func: Callable):
def safe_try(func: Callable):
try:
func()
except Exception as e:
logger.error(f"Error calling '{name}': {e}")
logger.error(f"Error calling '{func.__name__}': {e}")
def connect(session: orm.Session) -> bool:
@@ -108,14 +107,13 @@ def main():
db = get_repositories(session)
init_user = db.users.get_all()
if init_user:
if db.users.get_all():
logger.info("Database exists")
else:
logger.info("Database contains no users, initializing...")
init_db(db)
safe_try("fix slug food names", lambda: fix_slug_food_names(db))
safe_try(lambda: fix_slug_food_names(db))
if __name__ == "__main__":