feat: Add Households to Mealie (#3970)

This commit is contained in:
Michael Genson
2024-08-22 10:14:32 -05:00
committed by GitHub
parent 0c29cef17d
commit eb170cc7e5
315 changed files with 6975 additions and 3577 deletions

View File

@@ -2,8 +2,6 @@ from abc import ABC, abstractmethod
from logging import Logger
from pathlib import Path
from pydantic import UUID4
from mealie.core.root_logger import get_logger
from mealie.repos.repository_factory import AllRepositories
@@ -13,14 +11,13 @@ class AbstractSeeder(ABC):
Abstract class for seeding data.
"""
def __init__(self, db: AllRepositories, logger: Logger | None = None, group_id: UUID4 | None = None):
def __init__(self, db: AllRepositories, logger: Logger | None = None):
"""
Initialize the abstract seeder.
:param db_conn: Database connection.
:param logger: Logger.
"""
self.repos = db
self.group_id = group_id
self.logger = logger or get_logger("Data Seeder")
self.resources = Path(__file__).parent / "resources"

View File

@@ -15,6 +15,7 @@ def dev_users() -> list[dict]:
"email": "jason@example.com",
"password": hash_password(settings._DEFAULT_PASSWORD),
"group": settings.DEFAULT_GROUP,
"household": settings.DEFAULT_HOUSEHOLD,
"admin": False,
},
{
@@ -23,6 +24,7 @@ def dev_users() -> list[dict]:
"email": "bob@example.com",
"password": hash_password(settings._DEFAULT_PASSWORD),
"group": settings.DEFAULT_GROUP,
"household": settings.DEFAULT_HOUSEHOLD,
"admin": False,
},
{
@@ -31,6 +33,7 @@ def dev_users() -> list[dict]:
"email": "sarah@example.com",
"password": hash_password(settings._DEFAULT_PASSWORD),
"group": settings.DEFAULT_GROUP,
"household": settings.DEFAULT_HOUSEHOLD,
"admin": False,
},
{
@@ -39,6 +42,7 @@ def dev_users() -> list[dict]:
"email": "sammy@example.com",
"password": hash_password(settings._DEFAULT_PASSWORD),
"group": settings.DEFAULT_GROUP,
"household": settings.DEFAULT_HOUSEHOLD,
"admin": False,
},
]
@@ -51,6 +55,7 @@ def default_user_init(db: AllRepositories):
"email": settings._DEFAULT_EMAIL,
"password": hash_password(settings._DEFAULT_PASSWORD),
"group": settings.DEFAULT_GROUP,
"household": settings.DEFAULT_HOUSEHOLD,
"admin": True,
}

View File

@@ -14,7 +14,7 @@ from .resources import foods, labels, units
class MultiPurposeLabelSeeder(AbstractSeeder):
@cached_property
def service(self):
return MultiPurposeLabelService(self.repos, self.group_id)
return MultiPurposeLabelService(self.repos)
def get_file(self, locale: str | None = None) -> pathlib.Path:
locale_path = self.resources / "labels" / "locales" / f"{locale}.json"
@@ -31,7 +31,7 @@ class MultiPurposeLabelSeeder(AbstractSeeder):
seen_label_names.add(label["name"])
yield MultiPurposeLabelSave(
name=label["name"],
group_id=self.group_id,
group_id=self.repos.group_id,
)
def seed(self, locale: str | None = None) -> None:
@@ -58,7 +58,7 @@ class IngredientUnitsSeeder(AbstractSeeder):
seen_unit_names.add(unit["name"])
yield SaveIngredientUnit(
group_id=self.group_id,
group_id=self.repos.group_id,
name=unit["name"],
plural_name=unit.get("plural_name"),
description=unit["description"],
@@ -86,7 +86,7 @@ class IngredientFoodsSeeder(AbstractSeeder):
seed_foods: dict[str, str] = json.loads(file.read_text(encoding="utf-8"))
for food in set(seed_foods.values()):
yield SaveIngredientFood(
group_id=self.group_id,
group_id=self.repos.group_id,
name=food,
description="",
)