53 lines
1.7 KiB
Python
53 lines
1.7 KiB
Python
#!/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) |