# -*- coding: utf-8 -*- from __future__ import unicode_literals # Erik Stein , 2016 from imagekit.models.fields.utils import ImageSpecFileDescriptor from imagekit.models.fields import ImageSpecField from ..files.storage import MediaAssetFileSystemStorage from ...cachefiles import MediaAssetCacheFile class MediaAssetCacheFileDescriptor(ImageSpecFileDescriptor): """ - Manages manually overriden cached files - knows to handle ConversionNotApplicable exceptions and provides svg-icons for this case """ def __init__(self, field, attname, source_field_name): self.attname = attname self.field = field self.source_field_name = source_field_name def __get__(self, instance, owner): if instance is None: return self.field else: source = getattr(instance, self.source_field_name) spec = self.field.get_spec(source=source) file = MediaAssetCacheFile(spec) instance.__dict__[self.attname] = file return file def __set__(self, instance, value): instance.__dict__[self.attname] = value class MediaAssetFileField(ImageSpecField): """ - default storage """ def __init__(self, storage=MediaAssetFileSystemStorage): pass