preview_image to establishment and product type and subtype

This commit is contained in:
alex 2019-12-27 09:47:48 +03:00
parent 8abb582e49
commit e3d7618c62
7 changed files with 37 additions and 3 deletions

View File

@ -99,6 +99,9 @@ class EstablishmentTypeBaseSerializer(serializers.ModelSerializer):
name_translated = TranslatedField() name_translated = TranslatedField()
default_image_url = serializers.ImageField(source='default_image.image', default_image_url = serializers.ImageField(source='default_image.image',
allow_null=True) allow_null=True)
preview_image = serializers.URLField(source='preview_image_url',
allow_null=True,
read_only=True)
class Meta: class Meta:
"""Meta class.""" """Meta class."""
@ -110,6 +113,7 @@ class EstablishmentTypeBaseSerializer(serializers.ModelSerializer):
'use_subtypes', 'use_subtypes',
'index_name', 'index_name',
'default_image_url', 'default_image_url',
'preview_image',
] ]
extra_kwargs = { extra_kwargs = {
'name': {'write_only': True}, 'name': {'write_only': True},
@ -135,6 +139,9 @@ class EstablishmentSubTypeBaseSerializer(serializers.ModelSerializer):
name_translated = TranslatedField() name_translated = TranslatedField()
default_image_url = serializers.ImageField(source='default_image.image', default_image_url = serializers.ImageField(source='default_image.image',
allow_null=True) allow_null=True)
preview_image = serializers.URLField(source='preview_image_url',
allow_null=True,
read_only=True)
class Meta: class Meta:
"""Meta class.""" """Meta class."""
@ -146,6 +153,7 @@ class EstablishmentSubTypeBaseSerializer(serializers.ModelSerializer):
'establishment_type', 'establishment_type',
'index_name', 'index_name',
'default_image_url', 'default_image_url',
'preview_image',
] ]
extra_kwargs = { extra_kwargs = {
'name': {'write_only': True}, 'name': {'write_only': True},

View File

@ -36,6 +36,9 @@ class ProductSubTypeBaseSerializer(serializers.ModelSerializer):
read_only=True) read_only=True)
default_image_url = serializers.ImageField(source='default_image.image', default_image_url = serializers.ImageField(source='default_image.image',
allow_null=True) allow_null=True)
preview_image = serializers.URLField(source='preview_image_url',
allow_null=True,
read_only=True)
class Meta: class Meta:
model = models.ProductSubType model = models.ProductSubType
@ -44,6 +47,7 @@ class ProductSubTypeBaseSerializer(serializers.ModelSerializer):
'name_translated', 'name_translated',
'index_name_display', 'index_name_display',
'default_image_url', 'default_image_url',
'preview_image',
] ]
@ -52,6 +56,9 @@ class ProductTypeBaseSerializer(serializers.ModelSerializer):
name_translated = TranslatedField() name_translated = TranslatedField()
default_image_url = serializers.ImageField(source='default_image.image', default_image_url = serializers.ImageField(source='default_image.image',
allow_null=True) allow_null=True)
preview_image = serializers.URLField(source='preview_image_url',
allow_null=True,
read_only=True)
class Meta: class Meta:
model = models.ProductType model = models.ProductType
@ -60,6 +67,7 @@ class ProductTypeBaseSerializer(serializers.ModelSerializer):
'name_translated', 'name_translated',
'index_name', 'index_name',
'default_image_url', 'default_image_url',
'preview_image',
] ]

View File

@ -24,6 +24,7 @@ class EstablishmentDocument(Document):
properties=OBJECT_FIELD_PROPERTIES), properties=OBJECT_FIELD_PROPERTIES),
'index_name': fields.KeywordField(attr='index_name'), 'index_name': fields.KeywordField(attr='index_name'),
'default_image': fields.KeywordField(attr='default_image_url'), 'default_image': fields.KeywordField(attr='default_image_url'),
'preview_image': fields.KeywordField(attr='preview_image_url'),
}) })
establishment_subtypes = fields.ObjectField( establishment_subtypes = fields.ObjectField(
properties={ properties={
@ -31,6 +32,7 @@ class EstablishmentDocument(Document):
'name': fields.ObjectField(attr='name_indexing'), 'name': fields.ObjectField(attr='name_indexing'),
'index_name': fields.KeywordField(attr='index_name'), 'index_name': fields.KeywordField(attr='index_name'),
'default_image': fields.KeywordField(attr='default_image_url'), 'default_image': fields.KeywordField(attr='default_image_url'),
'preview_image': fields.KeywordField(attr='preview_image_url'),
}, },
multi=True) multi=True)
works_evening = fields.ListField(fields.IntegerField( works_evening = fields.ListField(fields.IntegerField(

View File

@ -20,6 +20,7 @@ class ProductDocument(Document):
'name': fields.ObjectField(attr='name_indexing', properties=OBJECT_FIELD_PROPERTIES), 'name': fields.ObjectField(attr='name_indexing', properties=OBJECT_FIELD_PROPERTIES),
'index_name': fields.KeywordField(), 'index_name': fields.KeywordField(),
'default_image': fields.KeywordField(attr='default_image_url'), 'default_image': fields.KeywordField(attr='default_image_url'),
'preview_image': fields.KeywordField(attr='preview_image_url'),
}, },
) )
subtypes = fields.ObjectField( subtypes = fields.ObjectField(
@ -28,6 +29,7 @@ class ProductDocument(Document):
'name': fields.ObjectField(attr='name_indexing', properties=OBJECT_FIELD_PROPERTIES), 'name': fields.ObjectField(attr='name_indexing', properties=OBJECT_FIELD_PROPERTIES),
'index_name': fields.KeywordField(), 'index_name': fields.KeywordField(),
'default_image': fields.KeywordField(attr='default_image_url'), 'default_image': fields.KeywordField(attr='default_image_url'),
'preview_image': fields.KeywordField(attr='preview_image_url'),
}, },
multi=True multi=True
) )

View File

@ -27,6 +27,8 @@ class EstablishmentTypeSerializer(serializers.Serializer):
id = serializers.IntegerField() id = serializers.IntegerField()
name_translated = serializers.SerializerMethodField() name_translated = serializers.SerializerMethodField()
index_name = serializers.CharField() index_name = serializers.CharField()
default_image = serializers.CharField()
preview_image = serializers.CharField()
def get_name_translated(self, obj): def get_name_translated(self, obj):
if isinstance(obj, dict): if isinstance(obj, dict):
@ -39,6 +41,8 @@ class ProductSubtypeDocumentSerializer(serializers.Serializer):
id = serializers.IntegerField() id = serializers.IntegerField()
name_translated = serializers.SerializerMethodField() name_translated = serializers.SerializerMethodField()
default_image = serializers.CharField()
preview_image = serializers.CharField()
def get_name_translated(self, obj): def get_name_translated(self, obj):
if isinstance(obj, dict): if isinstance(obj, dict):
@ -102,6 +106,8 @@ class ProductTypeSerializer(serializers.Serializer):
id = serializers.IntegerField() id = serializers.IntegerField()
index_name = serializers.CharField() index_name = serializers.CharField()
name_translated = serializers.SerializerMethodField() name_translated = serializers.SerializerMethodField()
default_image = serializers.CharField()
preview_image = serializers.CharField()
@staticmethod @staticmethod
def get_name_translated(obj): def get_name_translated(obj):

View File

@ -440,9 +440,11 @@ class HasTagsMixin(models.Model):
@property @property
def visible_tags(self): def visible_tags(self):
return self.tags.filter(category__public=True).prefetch_related('category', return self.tags.filter(category__public=True).prefetch_related(
'translation', 'category__translation')\ 'category',
.exclude(category__value_type='bool') 'translation',
'category__translation',
).exclude(category__value_type='bool')
class Meta: class Meta:
"""Meta class.""" """Meta class."""
@ -468,3 +470,8 @@ class TypeDefaultImageMixin:
"""Return image url.""" """Return image url."""
if hasattr(self, 'default_image') and self.default_image: if hasattr(self, 'default_image') and self.default_image:
return self.default_image.image.url return self.default_image.image.url
@property
def preview_image_url(self):
if hasattr(self, 'default_image') and self.default_image:
return self.default_image.image.get_image_url(thumbnail_key='type_preview')

View File

@ -409,6 +409,7 @@ SORL_THUMBNAIL_ALIASES = {
'city_xlarge': {'geometry_string': '560x560', 'crop': 'center'}, 'city_xlarge': {'geometry_string': '560x560', 'crop': 'center'},
'city_detail': {'geometry_string': '1120x1120', 'crop': 'center'}, 'city_detail': {'geometry_string': '1120x1120', 'crop': 'center'},
'city_original': {'geometry_string': '2048x1536', 'crop': 'center'}, 'city_original': {'geometry_string': '2048x1536', 'crop': 'center'},
'type_preview': {'geometry_string': '300x260', 'crop': 'center'},
} }