You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.7 KiB
58 lines
1.7 KiB
# -*- 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
|
|
|
|
from .models import ContextServicePlugin
|
|
from .forms import ContextServiceForm
|
|
from .settings import get_setting
|
|
|
|
|
|
class SevicePlugin(CMSPluginBase):
|
|
module = 'Sevice'
|
|
|
|
|
|
class SeviceContextPlugin(SevicePlugin):
|
|
"""
|
|
Non cached plugin which returns the latest posts taking into account the
|
|
user / toolbar state
|
|
"""
|
|
render_template = 'sevice/plugins/context_services.html'
|
|
name = _('Context Services')
|
|
model = ContextServicePlugin
|
|
form = ContextServiceForm
|
|
filter_horizontal = ('categories',)
|
|
cache = False
|
|
|
|
def render(self, context, instance, placeholder):
|
|
context = super(SeviceContextPlugin, self).render(context, instance, placeholder)
|
|
context['services_list'] = instance.get_services(context['request'])
|
|
|
|
if instance.categories.exists():
|
|
context['category'] = instance.categories.all()[0].slug
|
|
else:
|
|
context['category'] = "all"
|
|
|
|
return context
|
|
|
|
|
|
class SeviceContextPluginCached(SevicePlugin):
|
|
"""
|
|
Cached plugin which returns the latest published posts
|
|
"""
|
|
render_template = 'sevice/plugins/context_services.html'
|
|
name = _('Context Services')
|
|
model = ContextServicePlugin
|
|
form = ContextServiceForm
|
|
filter_horizontal = ('categories',)
|
|
|
|
def render(self, context, instance, placeholder):
|
|
context = super(SeviceContextPluginCached, self).render(context, instance, placeholder)
|
|
context['posts_list'] = instance.get_posts()
|
|
|
|
return context
|
|
|
|
|
|
plugin_pool.register_plugin(SeviceContextPlugin)
|
|
|