blechreiz-website/imagestore/imagestore_cms/cms_plugins.py

53 lines
1.7 KiB
Python
Raw Normal View History

#!/usr/bin/env python
# vim:fileencoding=utf-8
__author__ = 'zeus'
from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool
from models import ImagestoreAlbumPtr, ImagestoreAlbumCarousel
from django.utils.translation import ugettext_lazy as _
from django.conf import settings
class AlbumPlugin(CMSPluginBase):
model = ImagestoreAlbumPtr
name = _('Album')
render_template = "cms/plugins/imagestore_album.html"
text_enabled = True
def render(self, context, instance, placeholder):
context.update({'album': instance.album})
return context
class AlbumCarouselPlugin(CMSPluginBase):
model = ImagestoreAlbumCarousel
name = _('Album as carousel')
render_template = "cms/plugins/imagestore_album_carousel.html"
text_enabled = True
def render(self, context, instance, placeholder):
# default carousel template in the settings file
carousel_template = getattr(settings, 'IMAGESTORE_CAROUSEL_TEMPLATE', None)
if carousel_template:
self.render_template = carousel_template
if instance.template_file:
self.render_template = instance.template_file
else:
if carousel_template:
instance.template_file = carousel_template
else:
instance.template_file = self.render_template
instance.save()
images = instance.album.images.all()
if instance.limit:
images = images[:instance.limit]
context.update({'images': images, 'carousel': instance})
return context
plugin_pool.register_plugin(AlbumCarouselPlugin)
plugin_pool.register_plugin(AlbumPlugin)