From 0d96ec38582f4d7311270682b30925b6fc4a4dca Mon Sep 17 00:00:00 2001 From: Michael Genson <71845777+michael-genson@users.noreply.github.com> Date: Mon, 20 Jan 2025 07:01:34 -0600 Subject: [PATCH] fix: Show All Recipes in Cookbook Regardless of Sort (#4908) Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com> --- .../Domain/Cookbook/CookbookPage.vue | 5 +++- .../Domain/Recipe/RecipeCardSection.vue | 24 +++++++++++-------- mealie/repos/repository_recipes.py | 1 + 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/frontend/components/Domain/Cookbook/CookbookPage.vue b/frontend/components/Domain/Cookbook/CookbookPage.vue index 5d771ad5289..97964db3c8e 100644 --- a/frontend/components/Domain/Cookbook/CookbookPage.vue +++ b/frontend/components/Domain/Cookbook/CookbookPage.vue @@ -104,9 +104,12 @@ } const response = await actions.updateOne(editTarget.value); - // if name changed, redirect to new slug if (response?.slug && book.value?.slug !== response?.slug) { + // if name changed, redirect to new slug router.push(`/g/${route.value.params.groupSlug}/cookbooks/${response?.slug}`); + } else { + // otherwise reload the page, since the recipe criteria changed + router.go(0); } dialogStates.edit = false; editTarget.value = null; diff --git a/frontend/components/Domain/Recipe/RecipeCardSection.vue b/frontend/components/Domain/Recipe/RecipeCardSection.vue index 98611b02c1b..fe201bd25c0 100644 --- a/frontend/components/Domain/Recipe/RecipeCardSection.vue +++ b/frontend/components/Domain/Recipe/RecipeCardSection.vue @@ -219,16 +219,20 @@ export default defineComponent({ const router = useRouter(); const queryFilter = computed(() => { - const orderBy = props.query?.orderBy || preferences.value.orderBy; - const orderByFilter = preferences.value.filterNull && orderBy ? `${orderBy} IS NOT NULL` : null; - - if (props.query.queryFilter && orderByFilter) { - return `(${props.query.queryFilter}) AND ${orderByFilter}`; - } else if (props.query.queryFilter) { - return props.query.queryFilter; - } else { - return orderByFilter; - } + return props.query.queryFilter || null; + + // TODO: allow user to filter out null values when ordering by a value that may be null (such as lastMade) + + // const orderBy = props.query?.orderBy || preferences.value.orderBy; + // const orderByFilter = preferences.value.filterNull && orderBy ? `${orderBy} IS NOT NULL` : null; + + // if (props.query.queryFilter && orderByFilter) { + // return `(${props.query.queryFilter}) AND ${orderByFilter}`; + // } else if (props.query.queryFilter) { + // return props.query.queryFilter; + // } else { + // return orderByFilter; + // } }); async function fetchRecipes(pageCount = 1) { diff --git a/mealie/repos/repository_recipes.py b/mealie/repos/repository_recipes.py index 4f5399a48e2..72ce037a9c1 100644 --- a/mealie/repos/repository_recipes.py +++ b/mealie/repos/repository_recipes.py @@ -206,6 +206,7 @@ def page_all( # type: ignore # Apply options late, so they do not get used for counting q = q.options(*RecipeSummary.loader_options()) try: + self.logger.debug(f"Recipe Pagination Query: {pagination_result}") data = self.session.execute(q).scalars().unique().all() except Exception as e: self._log_exception(e)