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

View File

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

View File

@ -24,6 +24,7 @@ class EstablishmentDocument(Document):
properties=OBJECT_FIELD_PROPERTIES),
'index_name': fields.KeywordField(attr='index_name'),
'default_image': fields.KeywordField(attr='default_image_url'),
'preview_image': fields.KeywordField(attr='preview_image_url'),
})
establishment_subtypes = fields.ObjectField(
properties={
@ -31,6 +32,7 @@ class EstablishmentDocument(Document):
'name': fields.ObjectField(attr='name_indexing'),
'index_name': fields.KeywordField(attr='index_name'),
'default_image': fields.KeywordField(attr='default_image_url'),
'preview_image': fields.KeywordField(attr='preview_image_url'),
},
multi=True)
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),
'index_name': fields.KeywordField(),
'default_image': fields.KeywordField(attr='default_image_url'),
'preview_image': fields.KeywordField(attr='preview_image_url'),
},
)
subtypes = fields.ObjectField(
@ -28,6 +29,7 @@ class ProductDocument(Document):
'name': fields.ObjectField(attr='name_indexing', properties=OBJECT_FIELD_PROPERTIES),
'index_name': fields.KeywordField(),
'default_image': fields.KeywordField(attr='default_image_url'),
'preview_image': fields.KeywordField(attr='preview_image_url'),
},
multi=True
)

View File

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

View File

@ -440,9 +440,11 @@ class HasTagsMixin(models.Model):
@property
def visible_tags(self):
return self.tags.filter(category__public=True).prefetch_related('category',
'translation', 'category__translation')\
.exclude(category__value_type='bool')
return self.tags.filter(category__public=True).prefetch_related(
'category',
'translation',
'category__translation',
).exclude(category__value_type='bool')
class Meta:
"""Meta class."""
@ -468,3 +470,8 @@ class TypeDefaultImageMixin:
"""Return image url."""
if hasattr(self, 'default_image') and self.default_image:
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_detail': {'geometry_string': '1120x1120', 'crop': 'center'},
'city_original': {'geometry_string': '2048x1536', 'crop': 'center'},
'type_preview': {'geometry_string': '300x260', 'crop': 'center'},
}