예제 #1
0
    def ready(self):
        image_path = getattr(settings, "PINAX_EVENTS_IMAGE_THUMBNAIL_SPEC",
                             "pinax.events.specs.ImageThumbnail")
        secondary_image_path = getattr(
            settings, "PINAX_EVENTS_SECONDARY_IMAGE_THUMBNAIL_SPEC",
            "pinax.events.specs.SecondaryImageThumbnail")

        image_spec_class = load_path_attr(image_path)
        secondary_image_spec_class = load_path_attr(secondary_image_path)

        register.generator("pinax_events:image:thumb", image_spec_class)
        register.generator("pinax_events:secondary_image:thumb",
                           secondary_image_spec_class)
예제 #2
0
    def ready(self):
        thumbnail_path = getattr(
            settings,
            "PINAX_IMAGES_THUMBNAIL_SPEC",
            "pinax.images.specs.ImageThumbnail"
        )
        thumbnail_spec_class = load_path_attr(thumbnail_path)
        register.generator("pinax_images:image:thumbnail", thumbnail_spec_class)

        list_thumbnail_path = getattr(
            settings,
            "PINAX_IMAGES_LIST_THUMBNAIL_SPEC",
            "pinax.images.specs.ImageListThumbnail"
        )
        list_thumbnail_spec_class = load_path_attr(list_thumbnail_path)
        register.generator("pinax_images:image:list_thumbnail", list_thumbnail_spec_class)

        small_thumbnail_path = getattr(
            settings,
            "PINAX_IMAGES_SMALL_THUMBNAIL_SPEC",
            "pinax.images.specs.ImageSmallThumbnail"
        )
        small_thumbnail_spec_class = load_path_attr(small_thumbnail_path)
        register.generator("pinax_images:image:small_thumbnail", small_thumbnail_spec_class)

        medium_thumbnail_path = getattr(
            settings,
            "PINAX_IMAGES_MEDIUM_THUMBNAIL_SPEC",
            "pinax.images.specs.ImageMediumThumbnail"
        )
        medium_thumbnail_spec_class = load_path_attr(medium_thumbnail_path)
        register.generator("pinax_images:image:medium_thumbnail", medium_thumbnail_spec_class)
예제 #3
0
파일: apps.py 프로젝트: pinax/pinax-news
    def ready(self):
        image_path = getattr(
            settings,
            "PINAX_NEWS_IMAGE_THUMBNAIL_SPEC",
            "pinax.news.specs.ImageThumbnail"
        )
        secondary_image_path = getattr(
            settings,
            "PINAX_NEWS_SECONDARY_IMAGE_THUMBNAIL_SPEC",
            "pinax.news.specs.SecondaryImageThumbnail"
        )

        image_spec_class = load_path_attr(image_path)
        secondary_image_spec_class = load_path_attr(secondary_image_path)

        register.generator("pinax_news:image:thumb", image_spec_class)
        register.generator("pinax_news:secondary_image:thumb", secondary_image_spec_class)
예제 #4
0
    def ready(self):
        thumbnail_path = getattr(
            settings,
            "USERS_IMAGES_THUMBNAIL_SPEC",
            "users.specs.ImageThumbnail"
        )
        thumbnail_spec_class = load_path_attr(thumbnail_path)
        register.generator("users:avatar:thumbnail", thumbnail_spec_class)

        list_thumbnail_path = getattr(
            settings,
            "USERS_IMAGES_LIST_THUMBNAIL_SPEC",
            "users.specs.ImageListThumbnail"
        )
        list_thumbnail_spec_class = load_path_attr(list_thumbnail_path)
        register.generator("users:avatar:list_thumbnail", list_thumbnail_spec_class)

        small_thumbnail_path = getattr(
            settings,
            "USERS_IMAGES_SMALL_THUMBNAIL_SPEC",
            "users.specs.ImageSmallThumbnail"
        )
        small_thumbnail_spec_class = load_path_attr(small_thumbnail_path)
        register.generator("users:avatar:small_thumbnail", small_thumbnail_spec_class)

        medium_thumbnail_path = getattr(
            settings,
            "USERS_IMAGES_MEDIUM_THUMBNAIL_SPEC",
            "users.specs.ImageMediumThumbnail"
        )
        medium_thumbnail_spec_class = load_path_attr(medium_thumbnail_path)
        register.generator("users:avatar:medium_thumbnail", medium_thumbnail_spec_class)

        try:
            pass
            #import users.signals  # noqa F401
        except ImportError:
            pass
예제 #5
0
from imagekit import ImageSpec, register
from imagekit.processors import SmartResize


class PopupThumbnail(ImageSpec):
    processors = [SmartResize(width=380, height=100, upscale=False)]
    format = 'PNG'
    options = {'quality': 90}

register.generator('growing_places:popupthumbnail', PopupThumbnail)
예제 #6
0
파일: models.py 프로젝트: piwonskp/grzebyk
    def __str__(self):
        return self.name

    class Meta:
        ordering = ['name']
        verbose_name = 'produkt'
        verbose_name_plural = 'produkty'


class ImageThumbnail(ImageSpec):
    @property
    def processors(self):
        model, field_name = get_field_info(self.source)
        return [ResizeToFill(model.THUMB_WIDTH, model.THUMB_HEIGHT)]

register.generator('mainapp:image:image_thumbnail', ImageThumbnail)


def upload_to(instance, filename):
    switch = {ArticleImage: 'articles', ProductImage: 'shop'}
    directory = switch.pop(instance.__class__, '')
    return '/'.join([directory, filename])


class Image(models.Model):
    THUMB_WIDTH = 100
    THUMB_HEIGHT = 70
    image = models.ImageField(upload_to=upload_to, null=True)
    image_thumbnail = ImageSpecField(source='image',
                                     id='mainapp:image:image_thumbnail',
                                     format='JPEG',
예제 #7
0
from imagekit import ImageSpec, register
from imagekit.processors import SmartResize
"""image kit module spec"""


class RecipeDetail(ImageSpec):
    processors = [SmartResize(230, 230)]
    format = 'PNG'


class RecipeList(ImageSpec):
    processors = [SmartResize(120, 160)]
    format = 'PNG'


register.generator('recipe:detail', RecipeDetail)
register.generator('recipe:list', RecipeList)
예제 #8
0
try:
    from imagekit import register

    from .contrib.imagekit.generatorlibrary import OriginResolution, Thumbnail
except ImportError:
    pass
else:
    register.generator('cdn:thumbnail', Thumbnail)
    register.generator('cdn:origin_resolution', OriginResolution)
예제 #9
0
        verbose_name = _(u"Image")
        verbose_name_plural = _(u"Images")

    def __unicode__(self):
        return self.description


class WinePicture(models.Model):
    image = models.ImageField(upload_to="images/%Y/%m/%d/%h %i %s")
    thumbnail = ImageSpecField(source='image',
                               processors=[ResizeToFill(100, 100)],
                               format='JPEG',
                               options={'quality': 60})
    description = models.CharField(_(u"Description"), max_length=50)

    class Meta:
        verbose_name = _(u"Image")
        verbose_name_plural = _(u"Images")

    def __unicode__(self):
        return self.description


class Thumbnail(ImageSpec):
    processors = [ResizeToFill(100, 100)]
    format = 'JPEG'
    options = {'quality': 60}


register.generator('images:thumbnail', Thumbnail)
예제 #10
0
from django.db.models.signals import pre_delete
from django.template.defaultfilters import slugify
from imagekit import ImageSpec, register
from imagekit.processors import ResizeToFill
from smart_selects.db_fields import GroupedForeignKey, ChainedForeignKey
from django.utils.translation import ugettext as _
import twitter
"""
  Property thumbnail 
"""
class Thumbnail(ImageSpec):
    processors = [ResizeToFill(300, 150)]
    format = 'JPEG'
    options = {'quality': 60}

register.generator('myapp:thumbnail', Thumbnail)

"""
  Category model - RENT, SALE, FEATURED etc.
"""
@python_2_unicode_compatible
class Category(models.Model):
    category = models.CharField(max_length=30)
    def __unicode__(self):
        return unicode(self.category)
    
    class Meta:
        verbose_name = 'category'
        verbose_name_plural = 'categories'
 
    def __getitem__(self,items):
from imagekit import ImageSpec
from imagekit import register
from imagekit.processors import Thumbnail


class InvestmentCard(ImageSpec):
    processors = [Thumbnail(400, 400, crop=True, upscale=True)]
    format = 'JPEG'
    options = {'quality': 75}


class InvestmentDetail(ImageSpec):
    processors = [Thumbnail(400, 999, crop=False, upscale=False)]
    format = 'JPEG'
    options = {'quality': 75}


register.generator('constriction.investments:card', InvestmentCard)
register.generator('constriction.investments:detail', InvestmentDetail)
예제 #12
0
from imagekit import ImageSpec, register
from imagekit.processors import ResizeToFill

class Thumbnail(ImageSpec):
    processors = [ResizeToFill(100, 50)]
    format = 'JPEG'
    options = {'quality': 100}

register.generator('CGTA:thumbnail', Thumbnail)
예제 #13
0
파일: models.py 프로젝트: akbar22/sunflower
add_introspection_rules([], [r"core.\thumb.\ImageSpecField"])

# Create your models here.

class ImageThumbnail(ImageSpec):

    format = "JPEG"
    options = {"quality": 80}
    cache_to="thumbnails"

    @property
    def processors(self):
        model, field = get_field_info(self.source)
        return [ResizeToFit(400)]

register.generator("core:image:image_thumbnail", ImageThumbnail)


class UserProfile(models.Model):

    user = models.OneToOneField(User, related_name="profile")
    homepage = models.TextField(blank=True)
    avatar = ProcessedImageField(upload_to="avatars",
                                 blank=True,
                                 processors=[SmartResize(100, 100)],
                                 format="JPEG",
                                 options={"quality": 80})

    def delete(self, *args, **kwargs):
        self.avarar.delete(False)
        super(UserProfile, self).delete(*args, **kwargs)
예제 #14
0
from imagekit import ImageSpec, register
from imagekit.processors import ResizeToFill


class Slide(ImageSpec):
    processors = [ResizeToFill(1110, 400)]
    format = "WEBP"
    options = {"quality": 70}


register.generator("LZK:slide", Slide)
from imagekit import ImageSpec, register
from imagekit.processors import SmartResize


class DetailPageThumbnail(ImageSpec):
    processors = [SmartResize(100, 100)]
    format = 'PNG'
    options = {'quality': 80}

register.generator('lots:detail_page_thumbnail', DetailPageThumbnail)
예제 #16
0
from accounts.models import Account

class LogoProcessor(ImageSpec):
    format = 'JPEG'
    options = {'quality': 90}
    @property
    def processors(self):
        logoimage = self.source
        image = Image.open(logoimage)
        rgb_image = image.convert('RGB')
        background_color = rgb_image.getpixel((1, 1))
        if background_color == (0, 0, 0):
            background_color = (255,255,255)
        return [ResizeToFit(300, 300,mat_color=(background_color))]

register.generator('logo_processor', LogoProcessor)

class Company(models.Model):
    account = models.ForeignKey('accounts.Account',blank=True,null=True)
    company_name = models.CharField(max_length=200,default='')
    company_slug = models.SlugField(max_length=255, blank=True)
    company_url = models.URLField(max_length=200,default='')
    company_logo = models.ImageField(upload_to=settings.MEDIA_ROOT,default='')
    company_logo_thumb = ImageSpecField(
            source='company_logo',
            id='logo_processor'
        )
    company_featured_image = models.ImageField(upload_to=settings.MEDIA_ROOT,default='',blank=True)
    company_featured_image_thumb = ImageSpecField(
            source='company_featured_image',
            processors=[ResizeToFill(1200, 500)],
        self.slug = slugify(self.title)
        super(Panel, self).save(*args, **kwargs)
        
        
    def get_absolute_url(self):
        return "{}#{}".format(self.page.get_absolute_url(), self.slug)
    
from imagekit import ImageSpec, register
from imagekit.processors import ResizeToFill

class SlideImage(ImageSpec):
    processors = [ResizeToFill(800, 700)]
    format = 'JPEG'
    options = {'quality': 60}

register.generator('mb:slideimage', SlideImage)
    
class SlideShow(models.Model):
    class Meta:
        ordering = ['title']
    title = models.CharField(max_length=128, blank=True, default='')
    slug = models.SlugField(max_length=200)
    content = models.TextField(blank=True, default='')
    css = models.TextField(blank=True, default='')
    static_content = models.BooleanField(default=False)
    delay = models.IntegerField(default=3)
    
    def save(self, *args, **kwargs):
        self.slug = slugify(self.title)
        super(SlideShow, self).save(*args, **kwargs)
        
예제 #18
0
from imagekit import ImageSpec, register
from pilkit.processors import ResizeToFill


class ChildThumbnail(ImageSpec):
    processors = [ResizeToFill(100, 100)]
    format = 'JPEG'
    options = {'quality': 80}


class GalleryThumbnail(ImageSpec):
    processors = [ResizeToFill(80, 80)]
    format = 'JPEG'
    options = {'quality': 80}

register.generator('child:thumbnail', ChildThumbnail)
register.generator('gallery:thumbnail', GalleryThumbnail)
예제 #19
0
from imagekit import ImageSpec, register
from imagekit.processors import ResizeToFill


class Thumbnail(ImageSpec):
    processors = [ResizeToFill(100, 50)]
    format = 'JPEG'
    options = {'quality': 60}


class ProfilePic(ImageSpec):
    processors = [ResizeToFill(300, 300)]
    format = 'JPEG'
    options = {'quality': 60}


register.generator('accounts:thumbnail', Thumbnail)
register.generator('accounts:profile_pic', ProfilePic)
예제 #20
0
    resize it appropriately.
    """
    format = 'JPEG'
    options = {'quality': 60}

    @property
    def processors(self):
        """ Dynamically create the list of image processors using the model
        instance. """
        instance, field_name = get_field_info(self.source)
        return [
            ExifGpsExtractor(instance),
            ResizeToFit(1000, 1000, False),
        ]

register.generator('plantshare:screenedimage:plantsharegpsimage',
        PlantshareGpsImage)


class ScreenedImage(models.Model):
    image = ProcessedImageField(upload_to=rename_image_by_type,
                storage=upload_storage,
                spec_id='plantshare:screenedimage:plantsharegpsimage')
    thumb = ImageSpecField(source='image', format='JPEG',
                options={'quality': 60},
                processors=[ResizeToFit(128, 128, upscale=True)])

    # Add another thumbnail, cropped and centered with consistent
    # dimensions regardless of portrait or landscape orientation.
    thumb_cropped = ImageSpecField(source='image', format='JPEG',
                options={'quality': 60},
                processors=[SmartResize(183, 149, upscale=True)])
    format = "JPEG"
    options = {"quality": 60}


class SightingImageSmall(ImageSpec):
    processors = [SmartResize(300, 300)]
    format = "JPEG"
    options = {"quality": 80}


class SightingImageMedium(ImageSpec):
    processors = [SmartResize(750, 750)]
    format = "JPEG"
    options = {"quality": 80}


# try:
register.generator("sighting:thumbnail", SightingImageThumbnail)
# except imagekit.exceptions.AlreadyRegistered:
#    pass

# try:
register.generator("sighting:small", SightingImageSmall)
# except imagekit.exceptions.AlreadyRegistered:
#    pass

# try:
register.generator("sighting:medium", SightingImageMedium)
# except imagekit.exceptions.AlreadyRegistered:
#    pass
class IThumbnail(ImageSpec):
    processors = [ResizeToFit(90, 130)]
    format = 'JPEG'
    options = {'quality': 80}

class IDetail(ImageSpec):
    processors = [ResizeToFit(364, 520)]
    format = 'JPEG'
    options = {'quality': 80}
    
class IList(ImageSpec):
    processors = [ResizeToFit(182, 260)]
    format = 'JPEG'
    options = {'quality': 80}

class IStamp(ImageSpec):
    processors = [ResizeToFit(45, 65)]
    format = 'JPEG'
    options = {'quality': 80}

class ILarge(ImageSpec):
    processors = [ResizeToFit(768, 1024)]
    format = 'JPEG'
    options = {'quality': 80}    

register.generator('base:thumbnail', IThumbnail)
register.generator('base:detail', IDetail)
register.generator('base:list', IList)
register.generator('base:stamp', IStamp)
register.generator('base:large', ILarge)
예제 #23
0

class NomadPost(Post):
    summary = models.TextField()
    image = models.ImageField(upload_to="images/posts/%Y/%m/%d", max_length=500, blank=True)

    # Imagekit specs
    pic = ImageSpecField([Adjust(contrast=1.2, sharpness=1.1), ResizeToFit(720)], source='image', format='PNG', options={'quality': 90})
    listed_pic = ImageSpecField([Adjust(contrast=1.2, sharpness=1.1), ResizeToFill(720, 300)], source='image', format='PNG', options={'quality': 90})

    def __unicode__(self):
        return self.title

    def get_absolute_url(self):
        # URLconf for non-country blog configurations
        category = self.categories.latest('id')
        return reverse('post_detail', kwargs={'category_slug': category.slug, 'slug': self.slug})


# This code here to be used along with the {% generateimage %} imagekit template tag
# http://django-imagekit.readthedocs.org/en/latest/#generateimage
# https://github.com/matthewwithanm/django-imagekit/issues/202


class BlogUserAvatarThumbnail(ImageSpec):
    processors = [ResizeToFill(80, 80)]
    format = 'PNG'
    options = {'quality': 90}

register.generator('nomadblog:bloguser', BlogUserAvatarThumbnail)
예제 #24
0
from django.utils import timezone
from django.utils.encoding import python_2_unicode_compatible
from django.utils.translation import ugettext_lazy as _
from django.db import models
from taggit_autosuggest.managers import TaggableManager
from imagekit import ImageSpec, register
from imagekit.processors import ResizeToFill


class Thumbnail(ImageSpec):
    processors = [ResizeToFill(100, 50)]
    format = 'JPEG'
    options = {'quality': 60}


register.generator('thoughts:thumbnail', Thumbnail)

# Create your models here.
AUTH_USER_MODEL = getattr(settings, 'AUTH_USER_MODEL', 'auth.User')


class bella(models.Model):
    content = models.CharField(max_length=1500)
    user = models.ForeignKey(User, related_name="user")
    creation_date = models.DateTimeField(auto_now=True, blank=True)
    tags = TaggableManager()
    image = models.ImageField(upload_to='avatars')
    likes = models.ManyToManyField(User, related_name='likes')

    @property
    def total_likes(self):
예제 #25
0
        super().__init__(source)


# The 'Large' size appears to be the original image, so we're not using
# Imagekit to generate these.
#class Large(TwitterSpec):
    #pass
#
#register.generator('ditto_twitter:large', Large)


class Medium(TwitterSpec):
    width = 1200
    height = 1200

register.generator('ditto_twitter:medium', Medium)


class Small(TwitterSpec):
    width = 680
    height = 680

register.generator('ditto_twitter:small', Small)


class Thumbnail(ImageSpec):
    width = 150
    height = 150
    upscale = True

    def __init__(self, source):
예제 #26
0
class LogoProcessor(ImageSpec):
    format = 'JPEG'
    options = {'quality': 90}

    @property
    def processors(self):
        logoimage = self.source
        image = Image.open(logoimage)
        rgb_image = image.convert('RGB')
        background_color = rgb_image.getpixel((1, 1))
        if background_color == (0, 0, 0):
            background_color = (255, 255, 255)
        return [ResizeToFit(300, 300, mat_color=(background_color))]


register.generator('logo_processor', LogoProcessor)


class Company(models.Model):
    account = models.ForeignKey('accounts.Account', blank=True, null=True)
    company_name = models.CharField(max_length=200, default='')
    company_slug = models.SlugField(max_length=255, blank=True)
    company_url = models.URLField(max_length=200, default='')
    company_logo = models.ImageField(upload_to=settings.MEDIA_ROOT, default='')
    company_logo_thumb = ImageSpecField(source='company_logo',
                                        id='logo_processor')
    company_featured_image = models.ImageField(upload_to=settings.MEDIA_ROOT,
                                               default='',
                                               blank=True)
    company_featured_image_thumb = ImageSpecField(
        source='company_featured_image',
예제 #27
0
        # cannot save any extracted latitude or longitude coordinates.
        # TODO: debug and resolve, or else extract and save coordinates
        # another way (such as client side).
        print 'processors(): self.source:', self.source
        print 'processors(): type(self.source):', type(self.source)
        instance, field_name = get_field_info(self.source)
        print 'processors() instance:', instance
        print 'processors() field_name:', field_name

        return [
            ExifGpsExtractor(instance),
            ResizeToFit(1000, 1000, False),
        ]


register.generator('plantshare:screenedimage:plantsharegpsimage',
        PlantshareGpsImage)


class ScreenedImage(models.Model):
    image = ProcessedImageField(upload_to=rename_image_by_type,
                storage=upload_storage,
                spec_id='plantshare:screenedimage:plantsharegpsimage')
    thumb = ImageSpecField(source='image', format='JPEG',
                options={'quality': 60},
                processors=[ResizeToFit(128, 128, upscale=True)])

    # Add another thumbnail, cropped and centered with consistent
    # dimensions regardless of portrait or landscape orientation.
    thumb_cropped = ImageSpecField(source='image', format='JPEG',
                options={'quality': 60},
                processors=[SmartResize(183, 149, upscale=True)])
from imagekit import ImageSpec, register
from imagekit.processors import ResizeToFill,ResizeToFit,SmartResize,ResizeToCover,ResizeCanvas

class Thumbnail300(ImageSpec):
    processors = [ResizeToFit(300,200)]
    format = 'PNG'
    options = {'quality': 90}

register.generator('accounts:thumbnail300', Thumbnail300)

class Thumbnail200(ImageSpec):
	processors = [ResizeToFit(200, 200),ResizeCanvas(200,200)]
	format = 'PNG'
	options = {'quality': 90}

register.generator('accounts:thumbnail200', Thumbnail200)

class Thumbnail50(ImageSpec):
    processors = [ResizeToFit(50, 40),ResizeCanvas(50,40)]
    format = 'PNG'
    options = {'quality': 80}

register.generator('accounts:thumbnail50', Thumbnail50)


class Thumbnail80(ImageSpec):
    processors = [ResizeToFit(80, 65),ResizeCanvas(80,65)]
    format = 'PNG'
    options = {'quality': 90}

register.generator('accounts:thumbnail80', Thumbnail80)
예제 #29
0
from imagekit import ImageSpec, register
from imagekit.processors import ResizeToFill

class ExplicitCrop(object):

    def __init__(self, top, right, bottom, left):
        self.top = top
        self.right = right
        self.bottom = bottom
        self.left = left

    def process(self, img):
        (w, h) = img.size
        return img.crop((self.left, self.top, w - self.right, h - self.bottom))

class StatementPageHeadshot(ImageSpec):
    processors = [ExplicitCrop(10, 10, 68, 10), # should give us 122x152
        ResizeToFill(100, 125)]
    format = 'JPEG'
    options = {'quality': 80}


register.generator('op:statement_headshot', StatementPageHeadshot)
예제 #30
0
class GiantFillWide(ImageSpec):
    """Giant fill wide."""

    processors = [processors.ResizeToFill(1600, 400)]
    format = "JPEG"
    options = {"quality": 80}


class GiantFitWide(ImageSpec):
    """Giant fill wide."""

    processors = [processors.ResizeToFit(1600, 400)]
    format = "JPEG"
    options = {"quality": 80}


register.generator("header:thumbnail", HeaderThumbnail)
register.generator("iframe:thumbnail", iFrameThumbnail)
register.generator("common:thumbnail", Thumbnail)
register.generator("common:thumbnail_wide", ThumbnailWide)
register.generator("common:thumbnail_big", ThumbnailBig)
register.generator("common:thumbnail_bigger", ThumbnailBigger)
register.generator("common:avatar_thumbnail", AvatarThumbnail)
register.generator("common:medium_fill", MediumFill)
register.generator("common:medium_fill_wide", MediumFillWide)
register.generator("common:medium_fit", MediumFit)
register.generator("common:large", Large)
register.generator("common:giant_fill_wide", GiantFillWide)
register.generator("common:giant_fit_wide", GiantFitWide)
예제 #31
0
from imagekit import ImageSpec, register
from imagekit.processors import SmartResize


class ListThumbnail(ImageSpec):
    # Weird dimensions to match videos in the story list view
    processors = [SmartResize(width=236, height=145, upscale=False)]
    format = 'PNG'
    options = {'quality': 90}


register.generator('howtos:listthumbnail', ListThumbnail)
예제 #32
0
    address1 = models.CharField(max_length=100, blank=True, null=True)
    address2 = models.CharField(max_length=100, blank=True, null=True)
    city = models.CharField(max_length=40, blank=True, null=True)
    state = models.CharField(max_length=20, blank=True, null=True)
    zip = models.CharField(max_length=10, blank=True, null=True)
    website = models.CharField(max_length=300, blank=True, null=True)
    contact_email = models.CharField(max_length=300, blank=True, null=True)
    phone_number = models.CharField(max_length=20, blank=True, null=True)

    history = HistoricalRecords()

    def __str__(self):
        return self.description


register.generator('member:image:thumbnail_image', ThumbnailSpec)
register.generator('member:image:profile_image', ProfileSpec)


class Member(models.Model):
    user = models.OneToOneField(User)
    address1 = models.CharField(verbose_name="Address", max_length=100, blank=True, null=True)
    address2 = models.CharField(verbose_name="Address line 2", max_length=100, blank=True, null=True)
    city = models.CharField(verbose_name="City", max_length=40, blank=True, null=True)
    state = models.CharField(verbose_name="State", max_length=20, blank=True, null=True)
    zip = models.CharField(verbose_name="Zip Code", max_length=10, blank=True, null=True)
    phone_number = models.CharField(verbose_name="Phone number", max_length=20, blank=True, null=True)
    ghin = models.CharField(verbose_name="GHIN", max_length=7, blank=True, null=True)
    handicap = models.DecimalField(verbose_name="Handicap index", max_digits=3, decimal_places=1, blank=True, null=True)
    handicap_revision_date = models.DateField(verbose_name="Handicap revision date", blank=True, null=True)
    birth_date = models.DateField(verbose_name="Birth date", blank=True, null=True)
예제 #33
0
파일: account.py 프로젝트: jbc25/gestionMES
    (ACTIVE, 'Activa'),
    (SIGNUP, 'En proceso de acogida'),
    (INITIAL_PAYMENT, 'Pendiente de pago inicial'),
    (PENDING_PAYMENT, 'Pago de cuota pendiente'),
    (CANCELED, 'Anulada por impago'),
    (OPTED_OUT, 'Baja'),
)



class MaxResize(ImageSpec):
    processors = [ResizeToFit(1024, 1024)]
    format = 'JPEG'
    options = {'quality': 80}

register.generator('mes:profile:max_resize', MaxResize)



class AccountsManager(PolymorphicManager):

    def active(self):
        qs = self.get_queryset()
        return qs.filter( Q(status=ACTIVE) | Q(status=INITIAL_PAYMENT) | Q(status=PENDING_PAYMENT) )


class Account(PolymorphicModel):

    status = models.CharField(null=False, default=ACTIVE, max_length=20, choices=ACCOUNT_STATUSES, verbose_name=_('Estado'))
    cif = models.CharField(max_length=30, null=False, blank=False, verbose_name=_('NIF/CIF'), unique=True)
    legal_form = models.ForeignKey(LegalForm, null=True, verbose_name=_('Forma legal'), on_delete=models.SET_NULL)
예제 #34
0
    format = 'JPEG'
    options = {'quality': 60}

    @property
    def processors(self):
        model, field_name = get_field_info(self.source)
        min_dim = min(model.image_file.width, model.image_file.height)
        return [
            Crop(width=min_dim,
                 height=min_dim,
                 x=int(-1 * model.image_x * model.image_file.width),
                 y=int(-1 * model.image_y * model.image_file.height))
        ]


register.generator('profile_image', Profile_Image)


class Header_Image(ImageSpec):
    format = 'JPEG'
    options = {'quality': 60}

    @property
    def processors(self):
        model, field_name = get_field_info(self.source)
        crop_width = int(model.original.width)
        crop_height = min(model.original.height, int(crop_width * 3.0 / 5.0))
        return [SmartCrop(width=crop_width, height=crop_height)]


register.generator('header_image', Header_Image)
	def __init__(self, source, specs):
		super(InstanceFormatSpec, self).__init__(source, specs)

		self.update_format()
		

	#HACK TO UPDATE FORMAT BASED ON MODEL VALUE
	def get_format(self):
		if hasattr(self, 'instance') and hasattr(self, 'format_field'):
			return getattr(self.instance, self.format_field)
		return self.format

	def update_format(self):
		self.format = self.get_format()

	def generate(self):
		self.update_format()
		return super(InstanceFormatSpec, self).generate()

	def get_hash(self):
		self.update_format()
		return super(InstanceFormatSpec, self).get_hash()

	

		
register.generator('imagekit_cropper:instance_spec', InstanceSpec)
register.generator('imagekit_cropper:instance_format_spec', InstanceFormatSpec)


예제 #36
0
                image_sizes['xlarge'],
                image_sizes['xlarge'],
                anchor=processors.Anchor.TOP)
        ])
    original_cropped = ImageSpecField(
        source='image',
        id='books:book:squared_original')


class SquaredOriginal(ImageSpec):

    @property
    def processors(self):
        model, field_name = get_field_info(self.source)
        return [processors.Crop(model.width, model.width, anchor=processors.Anchor.TOP)]
register.generator('books:book:squared_original', SquaredOriginal)


class ReadingOrder(models.Model):
    name = models.TextField()
    source = models.URLField(
        max_length=1024,
        blank=True)
    books = models.ManyToManyField(
        to='Book',
        related_name='reading_orders',
        through='ReadingOrderBook')

    def __str__(self):
        return self.name
예제 #37
0
import os
from pilkit.lib import Image, ImageDraw
from imagekit import ImageSpec, register
from imagekit.processors import ResizeToFill, ResizeToFit, SmartResize
from storages.backends.s3boto3 import S3Boto3Storage
from tempfile import SpooledTemporaryFile


class UserAccountAvatar(ImageSpec):
    processors = [
        ResizeToFill(208, 208),
    ]


register.generator('user-account-avatar', UserAccountAvatar)
예제 #38
0
파일: models.py 프로젝트: finleysg/aimee
# coding=utf-8
from django.db import models
from imagekit import register
from imagekit.models import ImageSpecField
from imagekit.processors import ResizeToFit
from .generateimages import ThumbnailSpec, WatermarkSpec

register.generator('web:portfolioimage:thumbnail_image', ThumbnailSpec)
register.generator('web:portfolioimage:watermark_image', WatermarkSpec)


class Message(models.Model):
    from_name = models.CharField(verbose_name="Full Name", max_length=100)
    from_phone = models.CharField(verbose_name="Phone Number", max_length=20, blank=True)
    from_email = models.EmailField(verbose_name="Email Address")
    message_text = models.TextField(verbose_name="Message")
    message_date = models.DateTimeField(verbose_name="Message date", auto_now=True)


class SiteSetting(models.Model):
    home_page_image = models.ImageField(verbose_name="Home page main image")
    facebook_address = models.CharField(verbose_name="Facebook url", max_length=200, blank=True)
    linkedin_address = models.CharField(verbose_name="LinkedIn url", max_length=200, blank=True)
    dribble_address = models.CharField(verbose_name="Dribble url", max_length=200, blank=True)
    about_page_image = models.ImageField(verbose_name="About page main image")
    about_page_image2 = models.ImageField(verbose_name="About page secondary image", blank=True)
    about_page_text = models.TextField(verbose_name="About page main text")
    about_page_services = models.TextField(verbose_name="About page service text", blank=True)
    about_page_title = models.CharField(verbose_name="About page title", max_length=40)
    about_page_subtitle = models.CharField(verbose_name="About page sub-title", max_length=100, blank=True)
    contact_page_image = models.ImageField(verbose_name="Contact page main image")
예제 #39
0
from django.template.defaultfilters import slugify
from smart_selects.db_fields import GroupedForeignKey, ChainedForeignKey
from imagekit import ImageSpec, register
from imagekit.models import ImageSpecField
from imagekit.processors import ResizeToFill
from property.models import Type, Borough, Neighborhood, Category, Status, Room 

"""
  Property thumbnail
"""
class Thumbnail(ImageSpec):
    processors = [ResizeToFill(300, 150)]
    format = 'JPEG'
    options = {'quality': 60}

register.generator('dashboard:thumbnail', Thumbnail)

class ImageWithThumbnail(models.Model):
     name = models.CharField(max_length = 255)

     image = models.ImageField(upload_to='images/',max_length=500,blank=True,null=True)
     thumbnail = models.ImageField(upload_to='iamges/',max_length=500,blank=True,null=True)

     def create_thumbnail(self):
         # original code for this method came from
         # http://snipt.net/danfreak/generate-thumbnails-in-django-with-pil/

         # If there is no image associated with this.
         # do not create thumbnail
         if not self.image:
             return
예제 #40
0
from imagekit import ImageSpec, register
from imagekit.processors import ResizeToFill, SmartResize


class Landscape(ImageSpec):
    processors = [SmartResize(1200, 700)]
    format = 'JPEG'
    options = {'quality': 80}


class Portrait(ImageSpec):
    processors = [SmartResize(500, 700)]
    format = 'JPEG'
    options = {'quality': 80}


class Thumbnail(ImageSpec):
    processors = [ResizeToFill(100, 50)]
    format = 'JPEG'
    options = {'quality': 60}


register.generator('portfolio:landscape', Landscape)
register.generator('portfolio:portrait', Portrait)
register.generator('portfolio:thumbnail', Thumbnail)
예제 #41
0
class ProductSmallThumbnailSpec(ImageSpec):
    processors = [ResizeToFill(120, 80)]
    format = 'JPEG'
    options = {'quality': 60}


class ProductMediumThumbnailSpec(ImageSpec):
    processors = [ResizeToFill(300, 200)]
    format = 'JPEG'
    options = {'quality': 60}


class ProductBigThumbnailSpec(ImageSpec):
    processors = [ResizeToFill(450, 300)]
    format = 'JPEG'
    options = {'quality': 80}


class AdminThumbnailSpec(ImageSpec):
    processors = [ResizeToFill(90, 60)]
    format = 'JPEG'
    options = {'quality': 60}


register.generator('products:product_big_thumbnail', ProductBigThumbnailSpec)
register.generator('products:product_medium_thumbnail',
                   ProductMediumThumbnailSpec)
register.generator('products:product_small_thumbnail',
                   ProductSmallThumbnailSpec)
예제 #42
0
from imagekit.processors import SmartResize


class ThumbnailLarge(ImageSpec):
    processors = [SmartResize(900, 600)]
    format = 'JPEG'
    options = {'quality': 85}


class ThumbnailMedium(ImageSpec):
    processors = [SmartResize(600, 400)]
    format = 'JPEG'
    options = {'quality': 85}


class ThumbnailSmall(ImageSpec):
    processors = [SmartResize(200, 133)]
    format = 'JPEG'
    options = {'quality': 70}


class ThumbnailNoPre(ImageSpec):
    format = 'JPEG'
    options = {'quality': 85}


register.generator('cookbox_webui:thumbnail_large', ThumbnailLarge)
register.generator('cookbox_webui:thumbnail_medium', ThumbnailMedium)
register.generator('cookbox_webui:thumbnail_small', ThumbnailSmall)
register.generator('cookbox_webui:thumbnail_no_pre', ThumbnailNoPre)
예제 #43
0
                Q(redditorflairs__ended__isnull=True) | Q(redditorflairs__ended__lt=timezone.now()-timedelta(days=7)),
                redditorflairs__started__lt=timezone.now() - timedelta(days=5),
            ),
            then=1
        ),
        default=0,
        output_field=models.IntegerField()
    )
)


class Thumbnail(ImageSpec):
    processors = [ResizeToFill(38, 38)]
    format = 'PNG'
    options = {'quality': 90}
register.generator('core:logo', Thumbnail)


@cache_page(60 * 60)
def all_top100_stats(request):
    alliances = Alliance.objects.filter(
        active=True
    ).annotate(
        flair_count=redditorflair_filter,
        flair_lastweek=redditorflair_lastweek
    ).order_by(
        '-flair_count',
        'name'
    )
    corps = Corp.objects.filter(
        active=True
예제 #44
0
	grad_data = Person.objects.filter(member_type=2).order_by('sortorder')
	under_data = Person.objects.filter(member_type=3).order_by('sortorder')
	collab_data = Person.objects.filter(member_type=4).order_by('sortorder')
	alumni_data = Person.objects.filter(member_type=5).order_by('sortorder')
	postdoc_alumni_data = Person.objects.filter(member_type=6).order_by('sortorder')
	undergrad_alumni_data = Person.objects.filter(member_type=7).order_by('sortorder')
	graduate_alumni_data = Person.objects.filter(member_type=8).order_by('sortorder')
		
	return render_to_response('people/list.html', {'faculty_data': faculty_data,'postdoc_data': postdoc_data,
                'grad_data': grad_data,'under_data': under_data,'collab_data': collab_data,
                'alumni_data': alumni_data, 'postdoc_alumni_data': postdoc_alumni_data, 'undergrad_alumni_data': undergrad_alumni_data,
                'graduate_alumni_data': graduate_alumni_data }, context_instance=RequestContext(request))


def person_detail(request, person):
    
    person_data = Person.objects.get(id=person)
    
    return render_to_response('people/detail.html', {'person_data': person_data}, context_instance=RequestContext(request))


from imagekit import ImageSpec, register
from imagekit.processors import ResizeToFill

class PeopleThumbnail(ImageSpec):
    processors = [ResizeToFill(100, 50)]
    format = 'JPEG'
    options = {'quality': 60}

register.generator('people:thumbnail', PeopleThumbnail)
예제 #45
0
    @property
    def processors(self):
        model, field_name = get_field_info(self.source)
        min_dim = min(model.image_file.width, model.image_file.height)
        return [
            Crop(
                width=min_dim,
                height=min_dim,
                x=int(-1 * model.image_x * model.image_file.width),
                y=int(-1 * model.image_y * model.image_file.height),
            )
        ]


register.generator("profile_image", Profile_Image)


class Header_Image(ImageSpec):
    format = "JPEG"
    options = {"quality": 60}

    @property
    def processors(self):
        model, field_name = get_field_info(self.source)
        crop_width = int(model.original.width)
        crop_height = min(model.original.height, int(crop_width * 3.0 / 5.0))
        return [SmartCrop(width=crop_width, height=crop_height)]


register.generator("header_image", Header_Image)
예제 #46
0
from imagekit import ImageSpec, register
from imagekit.processors import ResizeToFill


class Thumbnail(ImageSpec):
    processors = [ResizeToFill(60, 80)]


# print('OKOKOKOKOKOKOK')
register.generator('user_profile:thumbnail', Thumbnail)
예제 #47
0
from imagekit import ImageSpec, register
from imagekit.processors import ResizeToFit

''' 
We are generating different image sizes for use across
our website. We stick to these image sizes to improve performance.
To call an image within a template, use the following code:
% generateimage 'vetcove:mediumthumbnail' source=image -- alt="alt text" class="class names" %
'''

class SmallThumbnail(ImageSpec):
    processors = [ResizeToFit(50, 50)]
    format = 'PNG'

register.generator('vetcove:smallthumbnail', SmallThumbnail)

class MediumThumbnail(ImageSpec):
    processors = [ResizeToFit(100, 100)]
    format = 'PNG'

register.generator('vetcove:mediumthumbnail', MediumThumbnail)

class LargeThumbnail(ImageSpec):
    processors = [ResizeToFit(200, 200)]
    format = 'PNG'

register.generator('vetcove:largethumbnail', LargeThumbnail)

class SmallImage(ImageSpec):
    processors = [ResizeToFit(300, 300)]
    format = 'PNG'
예제 #48
0
    ("CA", "Cash"),
)


def photo_directory_path(instance, filename):
    # file will be uploaded to MEDIA_ROOT/documents/year/<filename>
    return "photos/course-logos/{0}".format(filename)


class WebSpec(ImageSpec):
    format = 'JPEG'
    options = {'quality': 80}
    processors = [ResizeToFit(192, 192)]


register.generator("clubs:golf_course:web_logo", WebSpec)


class GolfCourse(models.Model):
    class Meta:
        ordering = [
            "name",
        ]

    name = models.CharField(verbose_name="Golf Course Name", max_length=200)
    address_txt = models.CharField(verbose_name="Street Address",
                                   max_length=200,
                                   blank=True)
    city = models.CharField(verbose_name="City", max_length=40, blank=True)
    state = models.CharField(verbose_name="State",
                             max_length=2,
예제 #49
0
        """
        Saves and then checks for the resized versions and runs
        imagekit's generate on them if they do not exist.  This is done
        rather than using ProcessedImageField for the sake of cleaner
        migrations which do not rely on imagekit being installed by referencing ProcessedImageField.
        Django 1.7 migrations may work more cleanly with ProcessedImageField

        :param generate_images: Automatically generate the resized images on save if True.  This can be problematic
          with the async backend and atomic transactions
        :type generate_images: bool
        """
        super(SightingImage, self).save(*args, **kwargs)
        if generate_images:
            self.generate_images()


# stuff that isn't really models, but works with models and needs to reference them
# and causes django 1.8+ to complain if it is loaded by __init__ because the models
# have not yet been loaded and so app_label cannot be determined

def cleanup_sightingimage(sender, instance, **kwargs):
    instance.thumbnail.delete(save=False)
    instance.small.delete(save=False)
    instance.medium.delete(save=False)
    instance.original.delete(save=False)

post_delete.connect(cleanup_sightingimage, sender=SightingImage, dispatch_uid='cleanup_sightingimage_post_delete')
register.generator('sighting:thumbnail', SightingImageThumbnail)
register.generator('sighting:small', SightingImageSmall)
register.generator('sighting:medium', SightingImageMedium)
예제 #50
0
    format = 'JPEG'
    options = {'quality': 75}


class Watermarki(ImageSpec):
    processors = [WatermarkProcessor()]
    format = 'JPEG'
    options = {'quality': 75}


class HiddenWatermark(ImageSpec):
    processors = [HiddenWatermarkProcessor()]
    format = 'PNG'


register.generator('items:text-overlay', TextOverlay)
#register.generator('items:watermark', Watermark)
register.generator('items:hidden-watermark', HiddenWatermark)


class Watermark():
    def __init__(self, text):
        self.text = text

    def process(self, image):
        #text = "DEI X"
        font = ImageFont.truetype(settings.DEFAULT_FONT, 350)
        rgba_image = image.convert('RGBA')
        text_overlay = Image.new('RGBA', rgba_image.size, (255, 255, 255, 0))
        image_draw = ImageDraw.Draw(text_overlay)
        text_size_x, text_size_y = image_draw.textsize(self.text, font=font)
from imagekit import ImageSpec, register
from imagekit.processors import ResizeToFill, Adjust

class Suggestion_thumb(ImageSpec):
    processors = [ResizeToFill(256, 256),Adjust(brightness = 0.5, contrast = 0.9)]
    format = 'JPEG'
    options = {'quality': 80}

register.generator('library:suggestion_thumb', Suggestion_thumb)
예제 #52
0
from imagekit import ImageSpec, register
from imagekit.processors import ResizeToFill

class Thumbnail(ImageSpec):
    processors = [ResizeToFill(600, 315)]
    format = 'JPEG'
    options = {'quality': 60}

register.generator('project:app:thumbnail', Thumbnail)
예제 #53
0
sp_choice = (('Y', 'YES'), ('N', 'NO'))

le_choice = (
    ('PART1', 'LANGUAGE PART-I'),
    ('PART2', 'LANGUAGE PART-II'),
)


class Thumbnail(ImageSpec):
    processors = [ResizeToFill(150, 150)]
    format = 'JPEG'
    options = {'quality': 60}


register.generator('students:thumbnail', Thumbnail)


class Child_detail(caching.base.CachingMixin, models.Model):
    def save(self):

        if not self.unique_id_no:
            self.unique_id_no = (self.school.school_code *
                                 100000) + (self.school.student_id_count + 1)
        super(Child_detail, self).save()

    def validate_image(fieldfile_obj):
        filesize = fieldfile_obj.file.size
        kb_limit = 50
        Kilobyte_limit = 1024 * 50
        if filesize > Kilobyte_limit:
예제 #54
0
from imagekit import ImageSpec, register
from imagekit.processors import ResizeToFit
''' 
We are generating different image sizes for use across
our website. We stick to these image sizes to improve performance.
To call an image within a template, use the following code:
% generateimage 'vetcove:mediumthumbnail' source=image -- alt="alt text" class="class names" %
'''


class SmallThumbnail(ImageSpec):
    processors = [ResizeToFit(50, 50)]
    format = 'PNG'


register.generator('vetcove:smallthumbnail', SmallThumbnail)


class MediumThumbnail(ImageSpec):
    processors = [ResizeToFit(100, 100)]
    format = 'PNG'


register.generator('vetcove:mediumthumbnail', MediumThumbnail)


class LargeThumbnail(ImageSpec):
    processors = [ResizeToFit(200, 200)]
    format = 'PNG'

예제 #55
0
from imagekit import ImageSpec, register
from imagekit.processors import SmartResize


class DetailPageThumbnail(ImageSpec):
    processors = [SmartResize(100, 100)]
    format = 'PNG'
    options = {'quality': 80}


register.generator('lots:detail_page_thumbnail', DetailPageThumbnail)
예제 #56
0
	options = {'quality' : 80}
	cachefile_strategy = strategies.Optimistic


	# put thumbnails into the "photos/thumbs" folder and
	# name them the same as the source file
	@property
	def cachefile_name (self) :
		source_filename = getattr(self.source, 'name', None)  # type: str
		if source_filename == "": return ""

		s = "photos/thumbs/" + source_filename.split('photos/original/')[1]
		return s


register.generator('enhueco:thumbnail', ThumbnailSpec)

class UserManager(models.Manager):
	def create_user(self, login, first_names, last_names):
		user = self.create(login=login, firstNames = first_names, lastNames = last_names)
		user.save()

		ImmediateEvent.objects.create(user=user)

		return user

	def create_user_and_token(self, login, first_names, last_names):
		user = self.create_user(login,first_names, last_names)
		token = Tokenizer.assignToken(user)

		return (user,token)
예제 #57
0
class MobileSpec(ImageSpec):
    format = 'JPEG'
    options = {'quality': 80}
    processors = [Transpose(Transpose.AUTO), ResizeToFit(900, 900)]


class WebSpec(ImageSpec):
    format = 'JPEG'
    options = {'quality': 90}
    processors = [
        Transpose(Transpose.AUTO),
        ResizeToFit(1600, 1600, upscale=False)
    ]


register.generator("documents:photo:mobile_image", MobileSpec)
register.generator("documents:photo:web_image", WebSpec)


class Document(models.Model):
    document_type = models.CharField(verbose_name="Type",
                                     choices=DOCUMENT_TYPE_CHOICES,
                                     max_length=1,
                                     default="R")
    year = models.IntegerField(verbose_name="Golf Season",
                               blank=True,
                               null=True)
    title = models.CharField(verbose_name="Title", max_length=120)
    event = models.ForeignKey(verbose_name="Event",
                              to=Event,
                              null=True,
예제 #58
0
import os
from uuid import uuid4

import exifread as ef
from django.conf import settings
from django.db import models
from django.dispatch import receiver
from django.utils import timezone
from imagekit import register
from imagekit.models.fields import ImageSpecField

from . import processors

register.generator('hh:photo:img_large', processors.LargeOrientedImage)
register.generator('hh:photo:img_medium', processors.MediumOrientedImage)
register.generator('hh:photo:img_small', processors.SmallOrientedImage)


def path_and_rename(instance, filename):
    path = 'photos'
    ext = filename.split('.')[-1]

    if instance.year is not None:
        year = instance.year
    else:
        if instance.decade is not None:
            year = str(instance.decade) + 's'
        else:
            year = '0000'
    filename = '{}_{}_{}.{}'.format('pic', year, uuid4().hex[:16], ext)