mirror of
https://github.com/TandoorRecipes/recipes.git
synced 2026-01-01 04:10:06 -05:00
fixes keyword filter on OR search
This commit is contained in:
@@ -108,8 +108,9 @@ class FuzzyFilterMixin(ViewSetMixin):
|
||||
if fuzzy:
|
||||
self.queryset = self.queryset.annotate(trigram=TrigramSimilarity('name', query)).filter(trigram__gt=0.2).order_by("-trigram")
|
||||
else:
|
||||
# TODO have this check unaccent search settings?
|
||||
self.queryset = self.queryset.filter(name__icontains=query)
|
||||
# TODO have this check unaccent search settings or other search preferences?
|
||||
# TODO for some querysets exact matches are sorted beyond pagesize, need to find better solution
|
||||
self.queryset = self.queryset.filter(name__istartswith=query) | self.queryset.filter(name__icontains=query)
|
||||
|
||||
updated_at = self.request.query_params.get('updated_at', None)
|
||||
if updated_at is not None:
|
||||
@@ -144,14 +145,14 @@ class TreeMixin(FuzzyFilterMixin):
|
||||
except self.model.DoesNotExist:
|
||||
self.queryset = self.model.objects.none()
|
||||
if root == 0:
|
||||
self.queryset = self.model.get_root_nodes() | self.model.objects.filter(depth=0)
|
||||
self.queryset = self.model.get_root_nodes()
|
||||
else:
|
||||
self.queryset = self.model.objects.get(id=root).get_children()
|
||||
elif tree:
|
||||
if tree.isnumeric():
|
||||
try:
|
||||
self.queryset = self.model.objects.get(id=int(tree)).get_descendants_and_self()
|
||||
except Keyword.DoesNotExist:
|
||||
except self.model.DoesNotExist:
|
||||
self.queryset = self.model.objects.none()
|
||||
else:
|
||||
return super().get_queryset()
|
||||
@@ -466,7 +467,7 @@ class RecipePagination(PageNumberPagination):
|
||||
max_page_size = 100
|
||||
|
||||
def paginate_queryset(self, queryset, request, view=None):
|
||||
self.facets = get_facet(queryset, request.query_params)
|
||||
self.facets = get_facet(queryset, request.query_params, request.space)
|
||||
return super().paginate_queryset(queryset, request, view)
|
||||
|
||||
def get_paginated_response(self, data):
|
||||
|
||||
@@ -148,7 +148,6 @@ def import_url(request):
|
||||
|
||||
recipe.steps.add(step)
|
||||
|
||||
all_keywords = Keyword.get_tree()
|
||||
for kw in data['keywords']:
|
||||
k, created = Keyword.objects.get_or_create(name=kw['text'], space=request.space)
|
||||
recipe.keywords.add(k)
|
||||
|
||||
@@ -56,9 +56,7 @@ def index(request):
|
||||
return HttpResponseRedirect(reverse('view_search'))
|
||||
|
||||
|
||||
# faceting
|
||||
# unaccent / likely will perform full table scan
|
||||
# create tests
|
||||
# TODO need to deprecate
|
||||
def search(request):
|
||||
if has_group_permission(request.user, ('guest',)):
|
||||
if request.user.userpreference.search_style == UserPreference.NEW:
|
||||
|
||||
Reference in New Issue
Block a user