diff --git a/apps/search_indexes/documents/product.py b/apps/search_indexes/documents/product.py index cb0131cb..cbd5c645 100644 --- a/apps/search_indexes/documents/product.py +++ b/apps/search_indexes/documents/product.py @@ -44,6 +44,14 @@ class ProductDocument(Document): }, multi=True, ) + grape_variety = fields.ObjectField( + properties={ + 'id': fields.IntegerField(), + 'label': fields.ObjectField(attr='label_indexing', properties=OBJECT_FIELD_PROPERTIES), + 'value': fields.KeywordField(), + }, + multi=True, + ) wine_region = fields.ObjectField(properties={ 'id': fields.IntegerField(), 'name': fields.KeywordField(), diff --git a/apps/search_indexes/serializers.py b/apps/search_indexes/serializers.py index a26b80fc..62646942 100644 --- a/apps/search_indexes/serializers.py +++ b/apps/search_indexes/serializers.py @@ -69,8 +69,8 @@ class WineRegionDocumentSerializer(serializers.Serializer): return instance.wine_region if instance and instance.wine_region else None -class WineColorDocumentSerializer(serializers.Serializer): - """Wine color ES document serializer,""" +class TagDocumentSerializer(serializers.Serializer): + """Tag ES document serializer,""" id = serializers.IntegerField() label_translated = serializers.SerializerMethodField() @@ -217,7 +217,8 @@ class ProductDocumentSerializer(DocumentSerializer): tags = TagsDocumentSerializer(many=True) subtypes = ProductSubtypeDocumentSerializer(many=True, allow_null=True) wine_region = WineRegionDocumentSerializer(allow_null=True) - wine_colors = WineColorDocumentSerializer(many=True) + wine_colors = TagDocumentSerializer(many=True) + grape_variety = TagDocumentSerializer(many=True) product_type = ProductTypeDocumentSerializer(allow_null=True) establishment_detail = ProductEstablishmentDocumentSerializer(source='establishment', allow_null=True) @@ -241,5 +242,6 @@ class ProductDocumentSerializer(DocumentSerializer): 'subtypes', 'wine_region', 'wine_colors', + 'grape_variety', 'establishment_detail', ) diff --git a/apps/search_indexes/views.py b/apps/search_indexes/views.py index 174b1dd8..a9a05d9b 100644 --- a/apps/search_indexes/views.py +++ b/apps/search_indexes/views.py @@ -243,6 +243,13 @@ class ProductDocumentViewSet(BaseDocumentViewSet): constants.LOOKUP_QUERY_EXCLUDE, ] }, + 'grape_variety_id': { + 'field': 'grape_variety.id', + 'lookups': [ + constants.LOOKUP_QUERY_IN, + constants.LOOKUP_QUERY_EXCLUDE, + ] + }, 'wine_from_country_code': { 'field': 'wine_region.country.code', },