mirror of
https://github.com/mealie-recipes/mealie.git
synced 2026-04-18 19:05:34 -04:00
feat: Add Households to Mealie (#3970)
This commit is contained in:
@@ -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"
|
||||
|
||||
|
||||
@@ -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,
|
||||
}
|
||||
|
||||
|
||||
@@ -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="",
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user