--- a/src/pyams_content/features/footer/skin/__init__.py Fri Oct 12 14:33:03 2018 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-#
-# Copyright (c) 2008-2018 Thierry Florac <tflorac AT ulthar.net>
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-
-__docformat__ = 'restructuredtext'
-
-
-# import standard library
-import logging
-logger = logging.getLogger('PyAMS (content)')
-
-# import interfaces
-from pyams_content.features.footer.interfaces import IFooterTarget, IFooterRenderer, IFooterSettings
-from pyams_content.features.renderer.interfaces import HIDDEN_RENDERER_NAME
-from pyams_portal.interfaces import PREVIEW_MODE
-from pyams_skin.layer import IPyAMSLayer
-from pyams_utils.interfaces import ICacheKeyValue
-from pyams_utils.interfaces.url import DISPLAY_CONTEXT
-
-# import packages
-from pyams_cache.beaker import get_cache
-from pyams_content.features.renderer.skin import BaseContentRenderer
-from pyams_portal.portlet import PORTLETS_CACHE_REGION, PORTLETS_CACHE_NAME, PORTLETS_CACHE_KEY
-from pyams_utils.adapter import adapter_config
-from pyams_utils.traversing import get_parent
-from pyramid.decorator import reify
-from zope.interface import implementer
-
-from pyams_content import _
-
-
-@implementer(IFooterRenderer)
-class BaseFooterRenderer(BaseContentRenderer):
- """Base footer renderer"""
-
- name = None
- settings_key = None
-
- @reify
- def settings_target(self):
- context = self.request.annotations.get(DISPLAY_CONTEXT)
- if context is None:
- context = self.context
- return get_parent(context, IFooterTarget)
-
- @reify
- def settings(self):
- if self.settings_interface is None:
- return None
- target = self.settings_target
- settings = IFooterSettings(target)
- while settings.inherit:
- settings = IFooterSettings(settings.parent)
- return settings.settings
-
- @reify
- def cache_key(self):
- return PORTLETS_CACHE_KEY.format(portlet=self.name,
- context=ICacheKeyValue(self.settings_target),
- lang=self.request.locale_name)
-
- def render(self):
- preview_mode = self.request.annotations.get(PREVIEW_MODE, False)
- if preview_mode:
- return super(BaseFooterRenderer, self).render()
- else:
- portlets_cache = get_cache(PORTLETS_CACHE_REGION, PORTLETS_CACHE_NAME)
- cache_key = self.cache_key
- if self.context is not self.request.context: # display shared content
- cache_key = '{0}::shared'.format(cache_key)
- try:
- result = portlets_cache.get_value(cache_key)
- logger.debug("Retrieving footer content from cache key {0}".format(cache_key))
- except KeyError:
- result = super(BaseFooterRenderer, self).render()
- portlets_cache.set_value(cache_key, result)
- logger.debug("Storing footer content to cache key {0}".format(cache_key))
- return result
-
-
-@adapter_config(name=HIDDEN_RENDERER_NAME, context=(IFooterTarget, IPyAMSLayer), provides=IFooterRenderer)
-class HiddenFooterRenderer(BaseFooterRenderer):
- """Hidden footer renderer"""
-
- name = HIDDEN_RENDERER_NAME
- label = _("Hidden footer")
- weight = -999
-
- def render(self):
- return ''