From ff96e8716891a9a2d1617f667ec5f5d430c3d2d3 Mon Sep 17 00:00:00 2001 From: smilerz Date: Fri, 1 Oct 2021 14:21:50 -0500 Subject: [PATCH] fix for #942 --- cookbook/helper/recipe_search.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cookbook/helper/recipe_search.py b/cookbook/helper/recipe_search.py index bd1c0ba3..05f932cf 100644 --- a/cookbook/helper/recipe_search.py +++ b/cookbook/helper/recipe_search.py @@ -7,6 +7,7 @@ from django.contrib.postgres.search import ( ) from django.core.cache import caches from django.db.models import Avg, Case, Count, Func, Max, Q, Subquery, Value, When +from django.db.models.functions import Coalesce from django.utils import timezone, translation from cookbook.managers import DICTIONARY @@ -60,7 +61,7 @@ def search_recipes(request, queryset, params): # return queryset.annotate(last_view=Max('viewlog__pk')).annotate(new=Case(When(pk__in=last_viewed_recipes, then=('last_view')), default=Value(0))).filter(new__gt=0).order_by('-new') # queryset that only annotates most recent view (higher pk = lastest view) - queryset = queryset.annotate(last_view=Max('viewlog__pk')).annotate(recent=Case(When(pk__in=last_viewed_recipes, then=('last_view')), default=Value(0))) + queryset = queryset.annotate(last_view=Max('viewlog__pk')).annotate(recent=Coalesce(When(pk__in=last_viewed_recipes, then=('last_view')), Value(0))) orderby += ['-recent'] # TODO create setting for default ordering - most cooked, rating,