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) |