[Erp5-report] r29608 - /erp5/trunk/products/ERP5/ERP5Site.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Oct 13 18:07:12 CEST 2009
Author: leonardo
Date: Tue Oct 13 18:07:08 2009
New Revision: 29608
URL: http://svn.erp5.org?rev=29608&view=rev
Log:
Configure CMFDefault skins in a manner compatible with CMF 2.x since they're no longer installable with addDirectoryViews() (approved by jerome)
Modified:
erp5/trunk/products/ERP5/ERP5Site.py
Modified: erp5/trunk/products/ERP5/ERP5Site.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/ERP5Site.py?rev=29608&r1=29607&r2=29608&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/ERP5Site.py [utf8] (original)
+++ erp5/trunk/products/ERP5/ERP5Site.py [utf8] Tue Oct 13 18:07:08 2009
@@ -1686,12 +1686,40 @@
"""
pass
+ # this lists only the skin layers of Products.CMFDefault we are actually
+ # interested in.
+ CMFDEFAULT_FOLDER_LIST = [ 'zpt_content'
+ , 'zpt_generic'
+ , 'zpt_control'
+ , 'Images'
+ ]
+ def addCMFDefaultDirectoryViews(self, p):
+ """Semi-manually create DirectoryViews since CMFDefault 2.X no longer
+ registers the "skins" directory, only its subdirectories, making it
+ unusable with Products.CMFCore.DirectoryView.addDirectoryViews."""
+ from Products.CMFCore.DirectoryView import createDirectoryView
+ try:
+ from Products.CMFCore.DirectoryView import _generateKey
+ except ImportError:
+ # Still on CMF 1.x
+ from Products.CMFCore.DirectoryView import minimalpath
+ def _generateKey(package, subdir):
+ package_path = os.path.dirname(package.__file__)
+ return minimalpath(os.path.join(package_path, subdir))
+ import Products.CMFDefault
+
+ ps = getToolByName(p, 'portal_skins')
+ # get the layer directories actually present
+ for cmfdefault_skin_layer in self.CMFDEFAULT_FOLDER_LIST:
+ reg_key = _generateKey(Products.CMFDefault,
+ 'skins/' + cmfdefault_skin_layer)
+ createDirectoryView(ps, reg_key)
+
def setupDefaultSkins(self, p):
from Products.CMFCore.DirectoryView import addDirectoryViews
- from Products.CMFDefault import cmfdefault_globals
from Products.CMFActivity import cmfactivity_globals
ps = getToolByName(p, 'portal_skins')
- addDirectoryViews(ps, 'skins', cmfdefault_globals)
+ self.addCMFDefaultDirectoryViews(p)
addDirectoryViews(ps, 'skins', cmfactivity_globals)
ps.manage_addProduct['OFSP'].manage_addFolder(id='external_method')
ps.manage_addProduct['OFSP'].manage_addFolder(id='custom')
@@ -1701,14 +1729,7 @@
skin_folder_list = [ 'custom'
, 'external_method'
, 'activity'
- , 'zpt_content'
- , 'zpt_generic'
- , 'zpt_control'
- , 'content'
- , 'generic'
- , 'control'
- , 'Images'
- ]
+ ] + self.CMFDEFAULT_FOLDER_LIST
skin_folders = ', '.join(skin_folder_list)
ps.addSkinSelection( 'View'
, skin_folders
More information about the Erp5-report
mailing list