Squashed commit of the following:

commit 75e46b8023
Author: smilerz <smilerz@gmail.com>
Date:   Wed Aug 25 21:27:31 2021 -0500

    fix #883

commit 2a1e1953ee
Author: smilerz <smilerz@gmail.com>
Date:   Wed Aug 25 21:08:35 2021 -0500

    consolidated recently viewed into FTS queryset

commit aa2d0eafb1
Author: smilerz <smilerz@gmail.com>
Date:   Wed Aug 25 16:43:52 2021 -0500

    fixed cookie reactivity

commit b74fdb3825
Author: smilerz <smilerz@gmail.com>
Date:   Wed Aug 25 16:37:43 2021 -0500

    exact match appears first on keyword/food/unit searches

commit b00c189fd6
Author: smilerz <smilerz@gmail.com>
Date:   Wed Aug 25 16:36:14 2021 -0500

    add pagination reset on search query change
This commit is contained in:
smilerz
2021-08-25 22:19:42 -05:00
parent 07a67684ab
commit ba07e98cae
6 changed files with 40 additions and 52 deletions

View File

@ -5,6 +5,7 @@ from gettext import gettext as _
from django.contrib.auth.models import User
from django.db.models import Avg, QuerySet, Sum
from django.urls import reverse
from django.utils import timezone
from drf_writable_nested import (UniqueFieldsMixin,
WritableNestedModelSerializer)
from rest_framework import serializers
@ -439,21 +440,19 @@ class RecipeBaseSerializer(WritableNestedModelSerializer):
pass
return None
def get_recipe_last_viewed(self, obj):
try:
last = obj.viewlog_set.filter(created_by=self.context['request'].user).last()
if last:
return last.created_at
except TypeError:
pass
return None
# TODO make days of new recipe a setting
def is_recipe_new(self, obj):
if obj.created_at > (timezone.now() - timedelta(days=7)):
return True
else:
return False
class RecipeOverviewSerializer(RecipeBaseSerializer):
keywords = KeywordLabelSerializer(many=True)
rating = serializers.SerializerMethodField('get_recipe_rating')
last_cooked = serializers.SerializerMethodField('get_recipe_last_cooked')
last_viewed = serializers.SerializerMethodField('get_recipe_last_viewed')
new = serializers.SerializerMethodField('is_recipe_new')
def create(self, validated_data):
pass
@ -466,7 +465,7 @@ class RecipeOverviewSerializer(RecipeBaseSerializer):
fields = (
'id', 'name', 'description', 'image', 'keywords', 'working_time',
'waiting_time', 'created_by', 'created_at', 'updated_at',
'internal', 'servings', 'servings_text', 'rating', 'last_cooked', 'last_viewed',
'internal', 'servings', 'servings_text', 'rating', 'last_cooked', 'new'
)
read_only_fields = ['image', 'created_by', 'created_at']