djangocms_blog/djangocms_blog/cms_plugins.py

81 lines
2.4 KiB
Python
Raw Normal View History

2014-01-04 17:07:09 +01:00
# -*- coding: utf-8 -*-
from django.utils.translation import ugettext_lazy as _
from cms.models.pluginmodel import CMSPlugin
from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool
2014-01-08 22:33:20 +01:00
from .models import AuthorEntriesPlugin, LatestPostsPlugin, Post, BlogCategory
2014-01-08 07:25:18 +01:00
from .forms import LatestEntriesForm
from .settings import BLOG_POSTS_LIST_TRUNCWORDS_COUNT
2014-01-04 17:07:09 +01:00
class BlogPlugin(CMSPluginBase):
module = 'Blog'
class BlogLatestEntriesPlugin(BlogPlugin):
2014-01-04 17:07:09 +01:00
render_template = 'djangocms_blog/plugins/latest_entries.html'
name = _('Latest Blog Articles')
2014-01-04 17:07:09 +01:00
model = LatestPostsPlugin
2014-01-08 07:25:18 +01:00
form = LatestEntriesForm
filter_horizontal = ('categories',)
2014-01-04 17:07:09 +01:00
def render(self, context, instance, placeholder):
context['instance'] = instance
context['TRUNCWORDS_COUNT'] = BLOG_POSTS_LIST_TRUNCWORDS_COUNT
2014-01-04 17:07:09 +01:00
return context
class BlogAuthorPostsPlugin(BlogPlugin):
2014-01-04 17:07:09 +01:00
module = _('Blog')
name = _('Author Blog Articles')
2014-01-04 17:07:09 +01:00
model = AuthorEntriesPlugin
form = LatestEntriesForm
2014-01-04 17:07:09 +01:00
render_template = 'djangocms_blog/plugins/authors.html'
filter_horizontal = ['authors']
def render(self, context, instance, placeholder):
context['instance'] = instance
return context
2014-01-04 17:07:09 +01:00
class BlogTagsPlugin(BlogPlugin):
module = _('Blog')
name = _('Tags')
model = CMSPlugin
render_template = 'djangocms_blog/plugins/tags.html'
def render(self, context, instance, placeholder):
context['tags'] = Post.objects.tag_cloud(queryset=Post.objects.published())
return context
2014-01-08 22:33:20 +01:00
class BlogCategoryPlugin(BlogPlugin):
module = _('Blog')
name = _('Categories')
model = CMSPlugin
render_template = 'djangocms_blog/plugins/categories.html'
def render(self, context, instance, placeholder):
context['categories'] = BlogCategory.objects.all()
return context
2014-01-04 17:07:09 +01:00
2014-01-04 17:07:09 +01:00
class BlogArchivePlugin(BlogPlugin):
module = _('Blog')
name = _('Archive')
model = CMSPlugin
render_template = 'djangocms_blog/plugins/archive.html'
def render(self, context, instance, placeholder):
context['dates'] = Post.objects.get_months(queryset=Post.objects.published())
return context
plugin_pool.register_plugin(BlogLatestEntriesPlugin)
plugin_pool.register_plugin(BlogAuthorPostsPlugin)
2014-01-04 17:07:09 +01:00
plugin_pool.register_plugin(BlogTagsPlugin)
plugin_pool.register_plugin(BlogArchivePlugin)
2014-01-08 22:33:20 +01:00
plugin_pool.register_plugin(BlogCategoryPlugin)