From f38924db42b8cfe2ddda3a6d40332c7773f1c76b Mon Sep 17 00:00:00 2001 From: Kuroshini Date: Wed, 25 Sep 2019 14:09:24 +0300 Subject: [PATCH 1/3] Fix favorites creation by slug --- apps/establishment/serializers/common.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/apps/establishment/serializers/common.py b/apps/establishment/serializers/common.py index 7b974887..691f3b43 100644 --- a/apps/establishment/serializers/common.py +++ b/apps/establishment/serializers/common.py @@ -315,20 +315,22 @@ class EstablishmentFavoritesCreateSerializer(serializers.ModelSerializer): def validate(self, attrs): """Override validate method""" # Check establishment object - establishment_id = self.context.get('request').parser_context.get('kwargs').get('pk') - establishment_qs = models.Establishment.objects.filter(id=establishment_id) + establishment_slug = self.context.get('request').parser_context.get('kwargs').get('slug') + establishment_qs = models.Establishment.objects.filter(slug=establishment_slug) - # Check establishment obj by pk from lookup_kwarg + # Check establishment obj by slug from lookup_kwarg if not establishment_qs.exists(): raise serializers.ValidationError({'detail': _('Object not found.')}) + else: + establishment = establishment_qs.first() # Check existence in favorites if self.get_user().favorites.by_content_type(app_label='establishment', model='establishment')\ - .by_object_id(object_id=establishment_id).exists(): + .by_object_id(object_id=establishment.id).exists(): raise utils_exceptions.FavoritesError() - attrs['establishment'] = establishment_qs.first() + attrs['establishment'] = establishment return attrs def create(self, validated_data, *args, **kwargs): From d8dd1fd7d669a09b93b70ec4cbf2f372fee02677 Mon Sep 17 00:00:00 2001 From: Kuroshini Date: Wed, 25 Sep 2019 19:00:10 +0300 Subject: [PATCH 2/3] Fix carousel field types --- apps/main/serializers.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/main/serializers.py b/apps/main/serializers.py index 10d75f2b..c981f0ee 100644 --- a/apps/main/serializers.py +++ b/apps/main/serializers.py @@ -136,8 +136,8 @@ class CarouselListSerializer(serializers.ModelSerializer): """Serializer for retrieving list of carousel items.""" model_name = serializers.CharField() name = serializers.CharField() - toque_number = serializers.CharField() - public_mark = serializers.CharField() + toque_number = serializers.IntegerField() + public_mark = serializers.IntegerField() image = serializers.URLField(source='image_url') awards = AwardBaseSerializer(many=True) vintage_year = serializers.IntegerField() From c2bd4b7da83a17a9668c5bf8311c7e9b98d36a1b Mon Sep 17 00:00:00 2001 From: Kuroshini Date: Wed, 25 Sep 2019 19:58:25 +0300 Subject: [PATCH 3/3] add slug && preview_image_url to search results --- apps/search_indexes/documents/establishment.py | 2 ++ apps/search_indexes/serializers.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/apps/search_indexes/documents/establishment.py b/apps/search_indexes/documents/establishment.py index 10f95d6c..16321723 100644 --- a/apps/search_indexes/documents/establishment.py +++ b/apps/search_indexes/documents/establishment.py @@ -84,6 +84,8 @@ class EstablishmentDocument(Document): 'name', 'toque_number', 'price_level', + 'preview_image_url', + 'slug', ) def get_queryset(self): diff --git a/apps/search_indexes/serializers.py b/apps/search_indexes/serializers.py index e6950bdd..480f509d 100644 --- a/apps/search_indexes/serializers.py +++ b/apps/search_indexes/serializers.py @@ -63,6 +63,8 @@ class EstablishmentDocumentSerializer(DocumentSerializer): 'collections', 'establishment_type', 'establishment_subtypes', + 'preview_image_url', + 'slug', ) @staticmethod