Commit 53f45919 authored by Romain Courteaud's avatar Romain Courteaud

Revert "[erp5_web] Desactivate the portal_skin URL parameter on Static Web Section"

This reverts commit 7cc3d26d.

Reactivate test_queryStringPortalSkin

websection wip

WebSection: hardcode portal type specific behaviour
parent 35eb258d
......@@ -34,22 +34,11 @@ from OFS.Traversable import NotFound
from Products.ERP5.mixin.extensible_traversable import DocumentExtensibleTraversableMixin
from Products.ERP5.Document.WebSection import WebSection
from Products.ERP5Type import Permissions
from Persistence import Persistent
from webdav.NullResource import NullResource
MARKER = []
class StaticWebSectionTraversalHook(Persistent):
"""Traversal hook to change the skin selection for this websection.
"""
def __call__(self, container, request):
if not request.get('ignore_layout', None):
# If a skin selection is defined in this web section, change the skin now.
skin_selection_name = container.getSkinSelectionName()
if skin_selection_name:# and request.get('portal_skin', None) is None:
container.getPortalObject().changeSkin(skin_selection_name)
class StaticWebSection(WebSection):
"""
This Web Section only get resource from the DMS.
......@@ -60,11 +49,6 @@ class StaticWebSection(WebSection):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
def _getTraversalHookClass(self):
return StaticWebSectionTraversalHook
_traversal_hook_class = StaticWebSectionTraversalHook
def getExtensibleContent(self, request, name):
stack = request['TraversalRequestNameStack']
......
......@@ -44,6 +44,7 @@ from Products.ERP5Type.Cache import getReadOnlyTransactionCache
# Global keys used for URL generation
WEBSECTION_KEY = 'web_section_value'
MARKER = []
WEB_SECTION_PORTAL_TYPE_TUPLE = ('Web Section', 'Web Site')
class WebSectionTraversalHook(Persistent):
"""Traversal hook to change the skin selection for this websection.
......@@ -52,7 +53,9 @@ class WebSectionTraversalHook(Persistent):
if not request.get('ignore_layout', None):
# If a skin selection is defined in this web section, change the skin now.
skin_selection_name = container.getSkinSelectionName()
if skin_selection_name and request.get('portal_skin', None) is None:
if skin_selection_name and \
((request.get('portal_skin', None) is None) or \
container.getPortalType() not in WEB_SECTION_PORTAL_TYPE_TUPLE):
container.getPortalObject().changeSkin(skin_selection_name)
class WebSection(Domain, DocumentExtensibleTraversableMixin):
......@@ -451,7 +454,7 @@ class WebSection(Domain, DocumentExtensibleTraversableMixin):
def _edit(self, **kw):
# XXX it is unclear if we should keep this behavior in other potential subclasses.
# Probably yes.
if self.getPortalType() in ('Web Section', 'Web Site'):
if self.getPortalType() in WEB_SECTION_PORTAL_TYPE_TUPLE:
if getattr(self, '__before_traverse__', None) is None:
# migrate beforeTraverse hook if missing
handle = self.meta_type + '/' + self.getId()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment