Skip to content

Commit

Permalink
Merge branch 'mealie-next' into wakelock
Browse files Browse the repository at this point in the history
  • Loading branch information
Kuchenpirat authored Sep 22, 2024
2 parents 6847154 + 2a6922a commit de28ce5
Show file tree
Hide file tree
Showing 12 changed files with 84 additions and 59 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ export default defineComponent({
setup(props, context) {
const { i18n } = useContext();
const displayRecipeRefs = ref(false);
const itemLabelCols = ref<string>(props.value.checked ? "auto" : props.showLabel ? "8" : "9");
const itemLabelCols = ref<string>(props.value.checked ? "auto" : props.showLabel ? "4" : "6");
const contextMenu: actions[] = [
{
Expand Down
2 changes: 1 addition & 1 deletion frontend/composables/use-users/preferences.ts
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ export function useShoppingListPreferences(): Ref<UserShoppingListPreferences> {
"shopping-list-preferences",
{
viewAllLists: false,
viewByLabel: false,
viewByLabel: true,
},
{ mergeDefaults: true }
// we cast to a Ref because by default it will return an optional type ref
Expand Down
2 changes: 2 additions & 0 deletions mealie/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ async def lifespan_fn(_: FastAPI) -> AsyncGenerator[None, None]:
settings.model_dump_json(
indent=4,
exclude={
"LDAP_QUERY_PASSWORD",
"OPENAI_API_KEY",
"SECRET",
"SFTP_PASSWORD",
"SFTP_USERNAME",
Expand Down
13 changes: 3 additions & 10 deletions mealie/repos/repository_recipes.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from pydantic import UUID4
from slugify import slugify
from sqlalchemy.exc import IntegrityError
from sqlalchemy.orm import InstrumentedAttribute, joinedload
from sqlalchemy.orm import InstrumentedAttribute
from typing_extensions import Self

from mealie.db.models.recipe.category import Category
Expand Down Expand Up @@ -165,15 +165,6 @@ def page_all( # type: ignore
pagination_result = pagination.model_copy()
q = sa.select(self.model)

args = [
joinedload(RecipeModel.recipe_category),
joinedload(RecipeModel.tags),
joinedload(RecipeModel.tools),
joinedload(RecipeModel.user),
]

q = q.options(*args)

fltr = self._filter_builder()
q = q.filter_by(**fltr)

Expand Down Expand Up @@ -212,6 +203,8 @@ def page_all( # type: ignore

q, count, total_pages = self.add_pagination_to_query(q, pagination_result)

# Apply options late, so they do not get used for counting
q = q.options(*RecipeSummary.loader_options())
try:
data = self.session.execute(q).scalars().unique().all()
except Exception as e:
Expand Down
9 changes: 6 additions & 3 deletions mealie/schema/household/group_shopping_list.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
ShoppingListRecipeReference,
)
from mealie.db.models.recipe import IngredientFoodModel, RecipeModel
from mealie.db.models.users.users import User
from mealie.schema._mealie import MealieModel
from mealie.schema._mealie.mealie_model import UpdatedAtField
from mealie.schema._mealie.types import NoneFloat
Expand Down Expand Up @@ -137,7 +138,9 @@ def loader_options(cls) -> list[LoaderOption]:
joinedload(ShoppingListItem.label),
joinedload(ShoppingListItem.unit),
selectinload(ShoppingListItem.recipe_references),
joinedload(ShoppingListItem.shopping_list).joinedload(ShoppingList.user),
joinedload(ShoppingListItem.shopping_list)
.joinedload(ShoppingList.user)
.load_only(User.household_id, User.group_id),
]


Expand Down Expand Up @@ -232,7 +235,7 @@ def loader_options(cls) -> list[LoaderOption]:
.joinedload(ShoppingListRecipeReference.recipe)
.joinedload(RecipeModel.tools),
selectinload(ShoppingList.label_settings).joinedload(ShoppingListMultiPurposeLabel.label),
joinedload(ShoppingList.user),
joinedload(ShoppingList.user).load_only(User.household_id, User.group_id),
]


Expand Down Expand Up @@ -279,7 +282,7 @@ def loader_options(cls) -> list[LoaderOption]:
.joinedload(ShoppingListRecipeReference.recipe)
.joinedload(RecipeModel.tools),
selectinload(ShoppingList.label_settings).joinedload(ShoppingListMultiPurposeLabel.label),
joinedload(ShoppingList.user),
joinedload(ShoppingList.user).load_only(User.household_id, User.group_id),
]


Expand Down
10 changes: 10 additions & 0 deletions mealie/schema/household/household_preferences.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
from pydantic import UUID4, ConfigDict
from sqlalchemy.orm import joinedload
from sqlalchemy.orm.interfaces import LoaderOption

from mealie.db.models.household.household import Household
from mealie.db.models.household.preferences import HouseholdPreferencesModel
from mealie.schema._mealie import MealieModel


Expand Down Expand Up @@ -27,3 +31,9 @@ class SaveHouseholdPreferences(UpdateHouseholdPreferences):
class ReadHouseholdPreferences(CreateHouseholdPreferences):
id: UUID4
model_config = ConfigDict(from_attributes=True)

@classmethod
def loader_options(cls) -> list[LoaderOption]:
return [
joinedload(HouseholdPreferencesModel.household).load_only(Household.group_id),
]
3 changes: 2 additions & 1 deletion mealie/schema/meal_plan/new_meal.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

from mealie.db.models.household import GroupMealPlan
from mealie.db.models.recipe import RecipeModel
from mealie.db.models.users.users import User
from mealie.schema._mealie import MealieModel
from mealie.schema.recipe.recipe import RecipeSummary
from mealie.schema.response.pagination import PaginationBase
Expand Down Expand Up @@ -66,7 +67,7 @@ def loader_options(cls) -> list[LoaderOption]:
selectinload(GroupMealPlan.recipe).joinedload(RecipeModel.recipe_category),
selectinload(GroupMealPlan.recipe).joinedload(RecipeModel.tags),
selectinload(GroupMealPlan.recipe).joinedload(RecipeModel.tools),
selectinload(GroupMealPlan.user),
selectinload(GroupMealPlan.user).load_only(User.household_id),
]


Expand Down
10 changes: 10 additions & 0 deletions mealie/schema/recipe/recipe.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
from sqlalchemy.orm.interfaces import LoaderOption

from mealie.core.config import get_app_dirs
from mealie.db.models.users.users import User
from mealie.schema._mealie import MealieModel, SearchType
from mealie.schema._mealie.mealie_model import UpdatedAtField
from mealie.schema.response.pagination import PaginationBase
Expand Down Expand Up @@ -121,6 +122,15 @@ def clean_strings(val: Any):

return val

@classmethod
def loader_options(cls) -> list[LoaderOption]:
return [
joinedload(RecipeModel.recipe_category),
joinedload(RecipeModel.tags),
joinedload(RecipeModel.tools),
joinedload(RecipeModel.user).load_only(User.household_id),
]


class RecipePagination(PaginationBase):
items: list[RecipeSummary]
Expand Down
3 changes: 2 additions & 1 deletion mealie/schema/recipe/recipe_timeline_events.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

from mealie.core.config import get_app_dirs
from mealie.db.models.recipe.recipe_timeline import RecipeTimelineEvent
from mealie.db.models.users.users import User
from mealie.schema._mealie import MealieModel
from mealie.schema._mealie.mealie_model import UpdatedAtField
from mealie.schema.recipe.recipe import Recipe
Expand Down Expand Up @@ -67,7 +68,7 @@ class RecipeTimelineEventOut(RecipeTimelineEventCreate):
def loader_options(cls) -> list[LoaderOption]:
return [
joinedload(RecipeTimelineEvent.recipe),
joinedload(RecipeTimelineEvent.user),
joinedload(RecipeTimelineEvent.user).load_only(User.household_id, User.group_id),
]

@classmethod
Expand Down
8 changes: 8 additions & 0 deletions mealie/schema/user/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@
from sqlalchemy.orm.interfaces import LoaderOption

from mealie.core.config import get_app_dirs, get_app_settings
from mealie.db.models.recipe.recipe import RecipeModel
from mealie.db.models.users import User
from mealie.db.models.users.user_to_recipe import UserToRecipe
from mealie.db.models.users.users import AuthMethod, LongLiveToken
from mealie.schema._mealie import MealieModel
from mealie.schema.group.group_preferences import ReadGroupPreferences
Expand Down Expand Up @@ -88,6 +90,12 @@ class UserRatingUpdate(MealieModel):
class UserRatingOut(UserRatingCreate):
id: UUID4

@classmethod
def loader_options(cls) -> list[LoaderOption]:
return [
joinedload(UserToRecipe.recipe).joinedload(RecipeModel.user).load_only(User.household_id, User.group_id)
]


class UserRatings(BaseModel, Generic[DataT]):
ratings: list[DataT]
Expand Down
79 changes: 38 additions & 41 deletions poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ python = "^3.10"
python-dateutil = "^2.8.2"
python-dotenv = "^1.0.0"
python-ldap = "^3.3.1"
python-multipart = "^0.0.9"
python-multipart = "^0.0.10"
python-slugify = "^8.0.0"
recipe-scrapers = "^15.0.0"
requests = "^2.31.0"
Expand Down

0 comments on commit de28ce5

Please sign in to comment.