X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/5aa13410812d3fc4b35c039bdc3f0a2edc5185a1..de25649c03f4d7d476bf8764ba8671681bfd6324:/src/api/fields.py?ds=sidebyside diff --git a/src/api/fields.py b/src/api/fields.py index 4bb44dcb9..b6269da16 100644 --- a/src/api/fields.py +++ b/src/api/fields.py @@ -1,5 +1,10 @@ +# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. +# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. +# from rest_framework import serializers -from django.core.urlresolvers import reverse +from sorl.thumbnail import default +from django.urls import reverse +from club.models import Membership class AbsoluteURLField(serializers.ReadOnlyField): @@ -32,3 +37,23 @@ class LegacyMixin(object): if field in value and value[field] is None: value[field] = '' return value + + +class UserPremiumField(serializers.ReadOnlyField): + def __init__(self, *args, **kwargs): + super(UserPremiumField, self).__init__(*args, source='*', **kwargs) + + def to_representation(self, value): + return Membership.is_active_for(value) + + +class ThumbnailField(serializers.FileField): + def __init__(self, geometry, *args, **kwargs): + self.geometry = geometry + super(ThumbnailField, self).__init__(*args, **kwargs) + + def to_representation(self, value): + if value: + return super(ThumbnailField, self).to_representation( + default.backend.get_thumbnail(value, self.geometry) + )