src/pyams_content/features/footer/skin/__init__.py
branchdev-dc
changeset 1086 3d259e1718ef
parent 1079 a5e56749ca3d
parent 1084 6b6a884fa28a
child 1087 978a2b9123b9
--- 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 ''