[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