[CMF-checkins] CVS: Products/CMFCore - CMFBTreeFolder.py:1.2 __init__.py:1.36

Tres Seaver tseaver at palladion.com
Tue Jul 12 22:42:18 EDT 2005


Update of /cvs-repository/Products/CMFCore
In directory cvs.zope.org:/tmp/cvs-serv18271/CMFCore

Modified Files:
	__init__.py 
Added Files:
	CMFBTreeFolder.py 
Log Message:
 - Forward-port addition of CMFBTreeFolder from 1.5 branch.


=== Products/CMFCore/CMFBTreeFolder.py 1.1 => 1.2 ===
--- /dev/null	Tue Jul 12 22:42:17 2005
+++ Products/CMFCore/CMFBTreeFolder.py	Tue Jul 12 22:41:47 2005
@@ -0,0 +1,69 @@
+##############################################################################
+#
+# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.0 (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
+#
+##############################################################################
+"""CMFBTreeFolder
+
+$Id$
+"""
+
+from AccessControl.SecurityInfo import ClassSecurityInfo
+from Globals import InitializeClass
+from Products.BTreeFolder2.BTreeFolder2 import BTreeFolder2Base
+
+from PortalFolder import PortalFolderBase
+from PortalFolder import factory_type_information as PortalFolder_FTI
+
+_actions = PortalFolder_FTI[0]['actions']
+
+factory_type_information = ( { 'id'             : 'CMF BTree Folder',
+                               'meta_type'      : 'CMF BTree Folder',
+                               'description'    : """\
+CMF folder designed to hold a lot of objects.""",
+                               'icon'           : 'folder_icon.gif',
+                               'product'        : 'CMFCore',
+                               'factory'        : 'manage_addCMFBTreeFolder',
+                               'filter_content_types' : 0,
+                               'immediate_view' : 'folder_edit_form',
+                               'actions'        : _actions,
+                               },
+                           )
+
+
+def manage_addCMFBTreeFolder(dispatcher, id, title='', REQUEST=None):
+    """Adds a new BTreeFolder object with id *id*.
+    """
+    id = str(id)
+    ob = CMFBTreeFolder(id)
+    ob.title = str(title)
+    dispatcher._setObject(id, ob)
+    ob = dispatcher._getOb(id)
+    if REQUEST is not None:
+        REQUEST['RESPONSE'].redirect(ob.absolute_url() + '/manage_main' )
+
+
+class CMFBTreeFolder(BTreeFolder2Base, PortalFolderBase):
+    """BTree folder for CMF sites.
+    """
+    meta_type = 'CMF BTree Folder'
+    security = ClassSecurityInfo()
+
+    def __init__(self, id, title=''):
+        PortalFolderBase.__init__(self, id, title)
+        BTreeFolder2Base.__init__(self, id)
+
+    def _checkId(self, id, allow_dup=0):
+        PortalFolderBase._checkId(self, id, allow_dup)
+        BTreeFolder2Base._checkId(self, id, allow_dup)
+
+
+InitializeClass(CMFBTreeFolder)


=== Products/CMFCore/__init__.py 1.35 => 1.36 ===
--- Products/CMFCore/__init__.py:1.35	Thu Jul  7 12:55:13 2005
+++ Products/CMFCore/__init__.py	Tue Jul 12 22:41:47 2005
@@ -30,6 +30,7 @@
 import CookieCrumbler
 import ContentTypeRegistry
 import CachingPolicyManager
+import CMFBTreeFolder
 import utils
 
 from permissions import AddPortalFolders
@@ -67,6 +68,28 @@
 
 cmfcore_globals=globals()
 
+_CONTENT_TYPES = ( PortalFolder.PortalFolder
+                 ,  CMFBTreeFolder.CMFBTreeFolder
+                 )
+
+_EXTRA_CONSTRUCTORS = ( PortalFolder.manage_addPortalFolder
+                      ,  CMFBTreeFolder.manage_addCMFBTreeFolder
+                      )
+
+_FTI = ( PortalFolder.factory_type_information
+       , CMFBTreeFolder.factory_type_information
+       )
+
+
+# Because persistent objects may be out there which were
+# created when the module was in that product, we need
+# __module_aliases__ . 
+__module_aliases__ = ( ( 'Products.BTreeFolder2.CMFBTreeFolder'
+                       , 'Products.CMFCore.CMFBTreeFolder'
+                       )
+                     ,
+                     )
+
 def initialize(context):
 
     utils.initializeBasesPhase2(z_bases, context)
@@ -152,11 +175,10 @@
                   ).initialize( context )
 
     utils.ContentInit( 'CMF Core Content'
-                     , content_types=( PortalFolder.PortalFolder, )
+                     , content_types=_CONTENT_TYPES
                      , permission=AddPortalFolders
-                     , extra_constructors=(
-                           PortalFolder.manage_addPortalFolder, )
-                     , fti=PortalFolder.factory_type_information
+                     , extra_constructors=_EXTRA_CONSTRUCTORS
+                     , fti=_FTI
                      ).initialize( context )
 
     # make registerHelp work with 2 directories
@@ -170,4 +192,3 @@
         help.lastRegistered = None
         context.registerHelp(directory='interfaces', clear=0)
     context.registerHelpTitle('CMF Core Help')
-



More information about the CMF-checkins mailing list