Source code for thaliawebsite.api.v2.serializers.thumbnail
from django.conf import settings
from django.templatetags.static import static
from django.utils.html import strip_spaces_between_tags
from rest_framework import serializers
from thaliawebsite.api.services import create_image_thumbnail_dict
from thaliawebsite.templatetags.bleach_tags import bleach
[docs]class ThumbnailSerializer(serializers.BaseSerializer):
options = {}
def __init__(
self,
instance=None,
data=None,
placeholder=None,
size_small=settings.THUMBNAIL_SIZES["small"],
size_medium=settings.THUMBNAIL_SIZES["medium"],
size_large=settings.THUMBNAIL_SIZES["large"],
fit_small=True,
fit_medium=True,
fit_large=True,
**kwargs
):
super().__init__(instance, data, **kwargs)
self.placeholder = placeholder
self.options = {
"size_small": size_small,
"size_medium": size_medium,
"size_large": size_large,
"fit_small": fit_small,
"fit_medium": fit_medium,
"fit_large": fit_large,
}
[docs] def to_representation(self, instance):
placeholder = self.placeholder
if not instance and placeholder:
placeholder = self.context["request"].build_absolute_uri(
static(self.placeholder)
)
return create_image_thumbnail_dict(
self.context["request"], instance, placeholder, **self.options
)
[docs] def to_internal_value(self, data):
pass
[docs] def update(self, instance, validated_data):
pass
[docs] def create(self, validated_data):
pass
[docs]class CleanedHTMLSerializer(serializers.BaseSerializer):
[docs] def to_internal_value(self, data):
pass
[docs] def update(self, instance, validated_data):
pass
[docs] def create(self, validated_data):
pass
[docs] def to_representation(self, instance):
return strip_spaces_between_tags(bleach(instance))