add missing files
This commit is contained in:
47
aircox_web/plugins/image.py
Normal file
47
aircox_web/plugins/image.py
Normal file
@ -0,0 +1,47 @@
|
||||
from django.db import models
|
||||
from django.templatetags.static import static
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.utils.html import format_html, mark_safe
|
||||
|
||||
from easy_thumbnails.files import get_thumbnailer
|
||||
from filer.fields.image import FilerImageField
|
||||
|
||||
__all__ = ['ImageBase', 'Image']
|
||||
|
||||
|
||||
class ImageBase(models.Model):
|
||||
image = FilerImageField(
|
||||
on_delete=models.CASCADE,
|
||||
verbose_name=_('image'),
|
||||
)
|
||||
width = None
|
||||
height = None
|
||||
crop = False
|
||||
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
||||
@property
|
||||
def thumbnail(self):
|
||||
if self.width == None and self.height == None:
|
||||
return self.image
|
||||
opts = {}
|
||||
if self.crop:
|
||||
opts['crop'] = 'smart'
|
||||
opts['size'] = (self.width or 0, self.height or 0)
|
||||
thumbnailer = get_thumbnailer(self.image)
|
||||
return thumbnailer.get_thumbnail(opts)
|
||||
|
||||
def render(self):
|
||||
return format_html('<img src="{}" alt=""/>', self.thumbnail.url)
|
||||
|
||||
|
||||
class Image(ImageBase):
|
||||
width = models.PositiveSmallIntegerField(blank=True,null=True)
|
||||
height = models.PositiveSmallIntegerField(blank=True,null=True)
|
||||
crop = models.BooleanField(default=False)
|
||||
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
||||
|
Reference in New Issue
Block a user