fixes keyword filter on OR search

This commit is contained in:
smilerz
2021-08-24 22:01:02 -05:00
parent 7bab07bdaf
commit 2808e3033d
22 changed files with 41 additions and 59 deletions

View File

@@ -3,8 +3,7 @@ from datetime import timedelta
from decimal import Decimal
from gettext import gettext as _
from django.contrib.auth.models import User
from django.db.models import QuerySet, Sum, Avg
from django.utils import timezone
from django.db.models import Avg, QuerySet, Sum
from drf_writable_nested import (UniqueFieldsMixin,
WritableNestedModelSerializer)
from rest_framework import serializers
@@ -213,9 +212,8 @@ class KeywordSerializer(UniqueFieldsMixin, serializers.ModelSerializer):
def get_image(self, obj):
recipes = obj.recipe_set.all().filter(space=obj.space).exclude(image__isnull=True).exclude(image__exact='')
if len(recipes) == 0:
recipes = Recipe.objects.filter(keywords__in=obj.get_tree(), space=obj.space).exclude(
image__isnull=True).exclude(image__exact='') # if no recipes found - check whole tree
if len(recipes) == 0 and obj.has_children():
recipes = Recipe.objects.filter(keywords__in=obj.get_descendants(), space=obj.space).exclude(image__isnull=True).exclude(image__exact='') # if no recipes found - check whole tree
if len(recipes) != 0:
return random.choice(recipes).image.url
else:
@@ -233,7 +231,6 @@ class KeywordSerializer(UniqueFieldsMixin, serializers.ModelSerializer):
return obj
class Meta:
# list_serializer_class = SpaceFilterSerializer
model = Keyword
fields = (
'id', 'name', 'icon', 'label', 'description', 'image', 'parent', 'numchild', 'numrecipe', 'created_at',