diff --git a/program/serializers.py b/program/serializers.py index f1c870b70b0865d48c33a3ec0334e04a2fc44207..1cef88141e360fa12078ee23dddd8bca1e54fdd6 100644 --- a/program/serializers.py +++ b/program/serializers.py @@ -18,7 +18,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # -from typing import List +from typing import List, TypedDict from rest_framework import serializers @@ -197,18 +197,31 @@ class HostLinkSerializer(serializers.ModelSerializer): fields = ("type", "url") +class Thumbnail(TypedDict): + width: float + height: float + url: str + + class ImageSerializer(serializers.ModelSerializer): ppoi = serializers.CharField(max_length=20) # PPOIField max_length thumbnails = serializers.SerializerMethodField() @staticmethod - def get_thumbnails(instance) -> List[str]: + def get_thumbnails(instance) -> List[Thumbnail]: """Returns thumbnails""" thumbnails = [] if instance.image.name and THUMBNAIL_SIZES: for size in THUMBNAIL_SIZES: - thumbnails.append(instance.image.crop[size].name) + [width, height] = size.split("x") + thumbnails.append( + { + "width": int(width), + "height": int(height), + "url": instance.image.crop[size].url, + } + ) return thumbnails