diff --git a/cookbook/helper/recipe_search.py b/cookbook/helper/recipe_search.py index d9d2e8514..c0a4a1082 100644 --- a/cookbook/helper/recipe_search.py +++ b/cookbook/helper/recipe_search.py @@ -617,7 +617,7 @@ class RecipeFacet(): nodes = food.get_ancestors() except Food.DoesNotExist: return self.get_facets() - foods = self._food_queryset(Food.objects.filter(path__startswith=food.path, depth=food.depth+1), food) + foods = self._food_queryset(food.get_children(), food) deep_search = self.Foods for node in nodes: index = next((i for i, x in enumerate(deep_search) if x["id"] == node.id), None) @@ -633,7 +633,7 @@ class RecipeFacet(): nodes = keyword.get_ancestors() except Keyword.DoesNotExist: return self.get_facets() - keywords = self._keyword_queryset(Keyword.objects.filter(path__startswith=keyword.path, depth=keyword.depth+1), keyword) + keywords = self._keyword_queryset(keyword.get_children(), keyword) deep_search = self.Keywords for node in nodes: index = next((i for i, x in enumerate(deep_search) if x["id"] == node.id), None) @@ -645,7 +645,7 @@ class RecipeFacet(): def _recipe_count_queryset(self, field, depth=1, steplen=4): return Recipe.objects.filter(**{f'{field}__path__startswith': OuterRef('path')}, id__in=self._recipe_list, space=self._request.space - ).values(child=Substr(f'{field}__path', 1, steplen*depth) + ).values(child=Substr(f'{field}__path', 1, steplen) ).annotate(count=Count('pk', distinct=True)).values('count') def _keyword_queryset(self, queryset, keyword=None): diff --git a/vue/src/apps/RecipeSearchView/RecipeSearchView.vue b/vue/src/apps/RecipeSearchView/RecipeSearchView.vue index c6f198a0c..244942e48 100644 --- a/vue/src/apps/RecipeSearchView/RecipeSearchView.vue +++ b/vue/src/apps/RecipeSearchView/RecipeSearchView.vue @@ -189,17 +189,10 @@
@@ -257,20 +250,13 @@
{{ $t("Foods") }}
- + {{ $t("Books") }}
- + 1) { + this.search[`${field}_fields`] = this.search[`${field}_fields`] - 1 + this.search[`search_${field}`][count - 1].items = [] + this.refreshData(false) + } + }, }, }