[CMF-checkins] CVS: CMF/CMFCore - ActionInformation.py:1.15.2.2 ActionProviderBase.py:1.17.10.3 ActionsTool.py:1.39.4.2 CMFCatalogAware.py:1.15.12.1 CMFCorePermissions.py:1.14.10.1 CachingPolicyManager.py:1.8.10.2 CatalogTool.py:1.42.2.2 ContentTypeRegistry.py:1.14.10.1 CookieCrumbler.py:1.18.10.4 DirectoryView.py:1.38.4.3 DiscussionTool.py:1.11.10.1 Expression.py:1.5.26.1 FSDTMLMethod.py:1.16.4.2 FSFile.py:1.6.10.2 FSImage.py:1.14.18.1 FSObject.py:1.14.12.1 FSPageTemplate.py:1.18.18.4 FSPropertiesObject.py:1.15.12.2 FSPythonScript.py:1.21.4.2 FSSTXMethod.py:1.8.12.1 FSZSQLMethod.py:1.3.26.2 MembershipTool.py:1.32.10.6 PortalFolder.py:1.45.4.3 RegistrationTool.py:1.20.10.1 Skinnable.py:1.10.6.2 SkinsContainer.py:1.6.22.1 SkinsTool.py:1.26.4.1 TypesTool.py:1.53.2.4 UndoTool.py:1.14.10.2 WorkflowCore.py:1.12.28.1 WorkflowTool.py:1.38.4.1 __init__.py:1.23.10.1 utils.py:1.39.2.3 version.txt:1.6.22.6

Sidnei da Silva sidnei at awkly.org
Thu Apr 22 13:48:19 EDT 2004


Update of /cvs-repository/CMF/CMFCore
In directory cvs.zope.org:/tmp/cvs-serv30596/CMFCore

Modified Files:
      Tag: CMF-1_4-branch
	ActionInformation.py ActionProviderBase.py ActionsTool.py 
	CMFCatalogAware.py CMFCorePermissions.py 
	CachingPolicyManager.py CatalogTool.py ContentTypeRegistry.py 
	CookieCrumbler.py DirectoryView.py DiscussionTool.py 
	Expression.py FSDTMLMethod.py FSFile.py FSImage.py FSObject.py 
	FSPageTemplate.py FSPropertiesObject.py FSPythonScript.py 
	FSSTXMethod.py FSZSQLMethod.py MembershipTool.py 
	PortalFolder.py RegistrationTool.py Skinnable.py 
	SkinsContainer.py SkinsTool.py TypesTool.py UndoTool.py 
	WorkflowCore.py WorkflowTool.py __init__.py utils.py 
	version.txt 
Log Message:
Fix version.txt to right version. Run reindent.py for removing extra tabs and whitespaces


=== CMF/CMFCore/ActionInformation.py 1.15.2.1 => 1.15.2.2 ===
--- CMF/CMFCore/ActionInformation.py:1.15.2.1	Fri May  9 17:31:37 2003
+++ CMF/CMFCore/ActionInformation.py	Thu Apr 22 13:47:45 2004
@@ -29,7 +29,7 @@
 class ActionInformation( SimpleItem ):
 
     """ Represent a single selectable action.
-    
+
     Actions generate links to views of content, or to specific methods
     of the site.  They can be filtered via their conditions.
     """
@@ -60,10 +60,10 @@
         self.id = id
         self.title = title
         self.description = description
-        self.category = category 
+        self.category = category
         self.condition = condition
         self.permissions = permissions
-        self.priority = priority 
+        self.priority = priority
         self.visible = visible
         self.setActionExpression(action)
 
@@ -107,7 +107,7 @@
         info['permissions'] = self.getPermissions()
         info['category'] = self.getCategory()
         info['visible'] = self.getVisibility()
-        return info 
+        return info
 
     security.declarePrivate( '_getActionObject' )
     def _getActionObject( self ):
@@ -224,4 +224,3 @@
         if hasattr(self, name):
             return getattr(self, name)
         raise KeyError, name
-


=== CMF/CMFCore/ActionProviderBase.py 1.17.10.2 => 1.17.10.3 ===
--- CMF/CMFCore/ActionProviderBase.py:1.17.10.2	Tue Mar 23 08:06:14 2004
+++ CMF/CMFCore/ActionProviderBase.py	Thu Apr 22 13:47:45 2004
@@ -41,7 +41,7 @@
     manage_options = ( { 'label' : 'Actions'
                        , 'action' : 'manage_editActionsForm'
                        }
-                     , 
+                     ,
                      )
 
     #
@@ -233,7 +233,7 @@
         """ Return a list of actions, cloned from our current list.
         """
         return map( lambda x: x.clone(), list( self._actions ) )
- 
+
     security.declarePrivate( '_extractAction' )
     def _extractAction( self, properties, index ):
 


=== CMF/CMFCore/ActionsTool.py 1.39.4.1 => 1.39.4.2 ===
--- CMF/CMFCore/ActionsTool.py:1.39.4.1	Thu Mar 11 08:08:26 2004
+++ CMF/CMFCore/ActionsTool.py	Thu Apr 22 13:47:45 2004
@@ -50,7 +50,7 @@
                                 , action=Expression(
                text='string:${folder_url}/folder_contents')
                                 , condition=Expression(
-               text='python: folder is not object') 
+               text='python: folder is not object')
                                 , permissions=('List folder contents',)
                                 , category='object'
                                 , visible=1
@@ -88,7 +88,7 @@
                          , 'action' : 'manage_overview'
                          }
                      ) + Folder.manage_options
-                     ) 
+                     )
 
     #
     #   ZMI methods
@@ -255,6 +255,6 @@
         else:
             for i in a:
                 append(i)
-        
+
 
 InitializeClass(ActionsTool)


=== CMF/CMFCore/CMFCatalogAware.py 1.15 => 1.15.12.1 ===
--- CMF/CMFCore/CMFCatalogAware.py:1.15	Sun Feb  2 11:06:17 2003
+++ CMF/CMFCore/CMFCatalogAware.py	Thu Apr 22 13:47:45 2004
@@ -1,14 +1,14 @@
 ##############################################################################
 #
 # Copyright (c) 2001 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
-# 
+#
 ##############################################################################
 
 import Globals


=== CMF/CMFCore/CMFCorePermissions.py 1.14 => 1.14.10.1 ===
--- CMF/CMFCore/CMFCorePermissions.py:1.14	Thu Feb 13 03:28:42 2003
+++ CMF/CMFCore/CMFCorePermissions.py	Thu Apr 22 13:47:45 2004
@@ -109,4 +109,3 @@
 
 AccessFuturePortalContent = 'Access future portal content'
 setDefaultRoles(AccessFuturePortalContent, ('Manager',))  # + Reviewer
-


=== CMF/CMFCore/CachingPolicyManager.py 1.8.10.1 => 1.8.10.2 ===
--- CMF/CMFCore/CachingPolicyManager.py:1.8.10.1	Wed Mar 31 23:10:03 2004
+++ CMF/CMFCore/CachingPolicyManager.py	Thu Apr 22 13:47:45 2004
@@ -79,15 +79,15 @@
             'content' -- the content object itself
 
             'view' -- the name of the view method
-           
+
             'keywords' -- keywords passed to the request
-           
+
             'request' -- the REQUEST object itself
-           
+
             'member' -- the authenticated member, or None if anonymous
-           
+
             'modules' -- usual TALES access-with-import
-           
+
             'nothing' -- None
 
           - The "Last-modified" HTTP response header will be set using
@@ -250,7 +250,7 @@
         """
             Return a sequence of tuples,
             '( policy_id, ( policy, typeObjectName ) )'
-            for all policies in the registry 
+            for all policies in the registry
         """
         result = []
         for policy_id in self._policy_ids:
@@ -279,7 +279,7 @@
                        , no_store
                        , must_revalidate
                        )
-        if REQUEST is not None: 
+        if REQUEST is not None:
             REQUEST[ 'RESPONSE' ].redirect( self.absolute_url()
                                           + '/manage_cachingPolicies'
                                           + '?manage_tabs_message='
@@ -308,7 +308,7 @@
                           , no_store
                           , must_revalidate
                           )
-        if REQUEST is not None: 
+        if REQUEST is not None:
             REQUEST[ 'RESPONSE' ].redirect( self.absolute_url()
                                           + '/manage_cachingPolicies'
                                           + '?manage_tabs_message='


=== CMF/CMFCore/CatalogTool.py 1.42.2.1 => 1.42.2.2 ===
--- CMF/CMFCore/CatalogTool.py:1.42.2.1	Mon Apr 28 12:44:59 2003
+++ CMF/CMFCore/CatalogTool.py	Thu Apr 22 13:47:45 2004
@@ -84,18 +84,18 @@
     manage_options = ( ZCatalog.manage_options +
                       ActionProviderBase.manage_options +
                       ({ 'label' : 'Overview', 'action' : 'manage_overview' }
-                     , 
+                     ,
                      ))
 
     def __init__(self):
         ZCatalog.__init__(self, self.getId())
-        
+
         if not hasattr(self, 'Vocabulary'):
             # As of 2.6, the Catalog no longer adds a vocabulary in itself
             from Products.PluginIndexes.TextIndex.Vocabulary import Vocabulary
             vocabulary = Vocabulary('Vocabulary', 'Vocabulary', globbing=1)
             self._setObject('Vocabulary', vocabulary)
-            
+
         self._initIndexes()
 
     #
@@ -126,7 +126,7 @@
                , ('path', 'PathIndex')
                , ('portal_type', 'FieldIndex')
                )
-    
+
     security.declarePublic( 'enumerateColumns' )
     def enumerateColumns( self ):
         #   Return a sequence of schema names to be cached.


=== CMF/CMFCore/ContentTypeRegistry.py 1.14 => 1.14.10.1 ===
--- CMF/CMFCore/ContentTypeRegistry.py:1.14	Thu Feb 13 03:28:42 2003
+++ CMF/CMFCore/ContentTypeRegistry.py	Thu Apr 22 13:47:45 2004
@@ -135,7 +135,7 @@
 
     security.declareProtected( ManagePortal, 'getExtensions' )
     def getExtensions(self):
-        """ Get filename extensions. 
+        """ Get filename extensions.
         """
         if self.extensions is None:
             return 'None'
@@ -280,7 +280,7 @@
         """
         if self.pattern is None:
             return 0
-        
+
         return self.pattern.match( name )
 
     security.declareProtected( ManagePortal, 'getTypeLabel' )
@@ -344,7 +344,7 @@
         """
         """
         return map( lambda x: x[0], _predicate_types )
-    
+
     security.declareProtected( ManagePortal, 'manage_predicates' )
     manage_predicates = DTMLFile( 'registryPredList', _dtmldir )
 
@@ -450,7 +450,7 @@
         """
             Return a sequence of tuples,
             '( id, ( predicate, typeObjectName ) )'
-            for all predicates in the registry 
+            for all predicates in the registry
         """
         result = []
         for predicate_id in self.predicate_ids:


=== CMF/CMFCore/CookieCrumbler.py 1.18.10.3 => 1.18.10.4 ===
--- CMF/CMFCore/CookieCrumbler.py:1.18.10.3	Thu Jan 22 11:42:26 2004
+++ CMF/CMFCore/CookieCrumbler.py	Thu Apr 22 13:47:45 2004
@@ -1,14 +1,14 @@
 ##############################################################################
 #
 # Copyright (c) 2001 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
-# 
+#
 ##############################################################################
 """ Cookie Crumbler: Enable cookies for non-cookie user folders.
 
@@ -309,4 +309,3 @@
     self._setObject(id, ob)
     if REQUEST is not None:
         return self.manage_main(self, REQUEST)
-


=== CMF/CMFCore/DirectoryView.py 1.38.4.2 => 1.38.4.3 ===
--- CMF/CMFCore/DirectoryView.py:1.38.4.2	Sat Apr  3 11:58:15 2004
+++ CMF/CMFCore/DirectoryView.py	Thu Apr 22 13:47:45 2004
@@ -1,14 +1,14 @@
 ##############################################################################
 #
 # Copyright (c) 2001 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
-# 
+#
 ##############################################################################
 """ Views of filesystem directories as folders.
 
@@ -113,13 +113,13 @@
                 fp = expandpath(self.filepath)
                 mtime = stat(fp)[8]
                 if sys.platform == 'nt':
-                    # some Windows directories don't change mtime 
+                    # some Windows directories don't change mtime
                     # when a file is added to or deleted from them :-(
                     # So keep a list of files as well, and see if that
                     # changes
                     path.walk(fp,_walker,filelist)
                     filelist.sort()
-            except: 
+            except:
                 LOG('DirectoryView',
                     ERROR,
                     'Error checking for directory modification',
@@ -128,16 +128,16 @@
             if mtime != self._v_last_read or filelist != self._v_last_filelist:
                 self._v_last_read = mtime
                 self._v_last_filelist = filelist
-                
+
                 return 1
 
             return 0
-        
+
     else:
 
         def _changed(self):
             return 0
-        
+
     def getContents(self, registry):
         changed = self._changed()
         if self.data is None or changed:
@@ -151,7 +151,7 @@
                     error=exc_info())
                 self.data = {}
                 self.objects = ()
-                    
+
         return self.data, self.objects
 
     def prepareContents(self, registry, register_subdirs=0):
@@ -207,7 +207,7 @@
                     t = registry.getTypeByMetaType(mt)
                 if t is None:
                     t = registry.getTypeByExtension(ext)
-                
+
                 if t is not None:
                     metadata = FSMetadata(e_fp)
                     metadata.read()
@@ -224,14 +224,14 @@
                             LOG( 'DirectoryView',
                                  ERROR,
                                  join( exc_lines, '\n' ) )
-                            
+
                             ob = BadFile( name,
                                           e_filepath,
                                           exc_str=join( exc_lines, '\r\n' ),
                                           fullname=entry )
                         finally:
                             tb = None   # Avoid leaking frame!
-                            
+
                     # FS-based security
                     try:
                         permissions = metadata.getSecurity()
@@ -254,11 +254,11 @@
                                 ERROR,
                                 'Error setting proxy role',
                                 error=exc_info())
-                    
+
                     ob_id = ob.getId()
                     data[ob_id] = ob
                     objects.append({'id': ob_id, 'meta_type': ob.meta_type})
-                    
+
         return data, tuple(objects)
 
 
@@ -268,7 +268,7 @@
         self._meta_types = {}
         self._object_types = {}
         self._directories = {}
-    
+
     def registerFileExtension(self, ext, klass):
         self._object_types[ext] = klass
 
@@ -321,7 +321,7 @@
         dirs = self._directories.keys()
         dirs.sort()
         return dirs
-        
+
 
 _dirreg = DirectoryRegistry()
 registerDirectory = _dirreg.registerDirectory
@@ -454,7 +454,7 @@
     security.declarePublic('getId')
     def getId(self):
         return self.id
-    
+
 Globals.InitializeClass(DirectoryViewSurrogate)
 
 
@@ -506,4 +506,3 @@
     '''
     '''
     return list(_dirreg.listDirectories())
-


=== CMF/CMFCore/DiscussionTool.py 1.11 => 1.11.10.1 ===
--- CMF/CMFCore/DiscussionTool.py:1.11	Thu Feb 13 03:28:42 2003
+++ CMF/CMFCore/DiscussionTool.py	Thu Apr 22 13:47:45 2004
@@ -42,7 +42,7 @@
     _isDiscussable = 1
 
     security = ClassSecurityInfo()
-    
+
 
     def __init__( self, content ):
         self.content = content
@@ -122,7 +122,7 @@
     security = ClassSecurityInfo()
 
     manage_options = ( { 'label' : 'Overview', 'action' : 'manage_overview' }
-                     , 
+                     ,
                      ) + SimpleItem.manage_options
 
     #


=== CMF/CMFCore/Expression.py 1.5 => 1.5.26.1 ===
--- CMF/CMFCore/Expression.py:1.5	Thu Aug  1 15:05:11 2002
+++ CMF/CMFCore/Expression.py	Thu Apr 22 13:47:45 2004
@@ -1,14 +1,14 @@
 ##############################################################################
 #
 # Copyright (c) 2001 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
-# 
+#
 ##############################################################################
 """ Expressions in a web-configurable workflow.
 
@@ -76,4 +76,3 @@
         'member':       member,
         }
     return getEngine().getContext(data)
-


=== CMF/CMFCore/FSDTMLMethod.py 1.16.4.1 => 1.16.4.2 ===
--- CMF/CMFCore/FSDTMLMethod.py:1.16.4.1	Mon Sep  1 12:02:34 2003
+++ CMF/CMFCore/FSDTMLMethod.py	Thu Apr 22 13:47:45 2004
@@ -1,14 +1,14 @@
 ##############################################################################
 #
 # Copyright (c) 2001 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
-# 
+#
 ##############################################################################
 """ Customizable DTML methods that come from the filesystem.
 
@@ -102,7 +102,7 @@
         return Globals.HTML.read_raw(self)
 
     #### The following is mainly taken from OFS/DTMLMethod.py ###
-        
+
     index_html=None # Prevent accidental acquisition
 
     # Documents masquerade as functions:
@@ -128,7 +128,7 @@
         security=getSecurityManager()
         security.addContext(self)
         try:
-        
+
             if client is None:
                 # Called as subtemplate, so don't need error propagation!
                 r=apply(Globals.HTML.__call__, (self, client, REQUEST), kw)
@@ -163,7 +163,7 @@
         Returns the cacheNamespaceKeys.
         '''
         return self._cache_namespace_keys
-        
+
     def setCacheNamespaceKeys(self, keys, REQUEST=None):
         '''
         Sets the list of names that should be looked up in the


=== CMF/CMFCore/FSFile.py 1.6.10.1 => 1.6.10.2 ===
--- CMF/CMFCore/FSFile.py:1.6.10.1	Tue Mar 30 16:04:48 2004
+++ CMF/CMFCore/FSFile.py	Thu Apr 22 13:47:45 2004
@@ -1,14 +1,14 @@
 ##############################################################################
 #
 # Copyright (c) 2001 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
-# 
+#
 ##############################################################################
 """Customizable image objects that come from the filesystem."""
 __version__='$Revision$'[11:-2]


=== CMF/CMFCore/FSImage.py 1.14 => 1.14.18.1 ===
--- CMF/CMFCore/FSImage.py:1.14	Thu Nov 14 11:49:10 2002
+++ CMF/CMFCore/FSImage.py	Thu Apr 22 13:47:45 2004
@@ -1,14 +1,14 @@
 ##############################################################################
 #
 # Copyright (c) 2001 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
-# 
+#
 ##############################################################################
 """ Customizable image objects that come from the filesystem.
 
@@ -73,7 +73,7 @@
         return data
 
     #### The following is mainly taken from OFS/Image.py ###
-        
+
     __str__ = Image.__str__
 
     _image_tag = Image.tag


=== CMF/CMFCore/FSObject.py 1.14 => 1.14.12.1 ===
--- CMF/CMFCore/FSObject.py:1.14	Thu Jan 30 15:26:50 2003
+++ CMF/CMFCore/FSObject.py	Thu Apr 22 13:47:45 2004
@@ -1,14 +1,14 @@
 ##############################################################################
 #
 # Copyright (c) 2001 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
-# 
+#
 ##############################################################################
 """ Customizable objects that come from the filesystem (base class).
 
@@ -32,7 +32,7 @@
 
 class FSObject(Acquisition.Implicit, Item, Cacheable):
     """FSObject is a base class for all filesystem based look-alikes.
-    
+
     Subclasses of this class mimic ZODB based objects like Image and
     DTMLMethod, but are not directly modifiable from the management
     interface. They provide means to create a TTW editable copy, however.
@@ -63,7 +63,7 @@
         self.__name__ = id # __name__ is used in traceback reporting
         self._filepath = filepath
         fp = expandpath(self._filepath)
-        
+
         try: self._file_mod_time = stat(fp)[8]
         except: pass
         self._readFile(0)
@@ -76,10 +76,10 @@
         """
 
         obj = self._createZODBClone()
-        
+
         id = obj.getId()
         fpath = tuple(split(folder_path, '/'))
-        portal_skins = getToolByName(self,'portal_skins') 
+        portal_skins = getToolByName(self,'portal_skins')
         folder = portal_skins.restrictedTraverse(fpath)
         folder._verifyObjectPaste(obj, validate_src=0)
         folder._setObject(id, obj)
@@ -94,7 +94,7 @@
 
     def _readFile(self, reparse):
         """Read the data from the filesystem.
-        
+
         Read the file indicated by exandpath(self._filepath), and parse the
         data if necessary.  'reparse' is set when reading the second
         time and beyond.
@@ -187,7 +187,7 @@
     security.declarePrivate( '_readFile' )
     def _readFile( self, reparse ):
         """Read the data from the filesystem.
-        
+
         Read the file indicated by exandpath(self._filepath), and parse the
         data if necessary.  'reparse' is set when reading the second
         time and beyond.
@@ -202,14 +202,14 @@
         except:  # No errors of any sort may propagate
             data = self.file_contents = None #give up
         return data
-    
+
     security.declarePublic( 'getFileContents' )
     def getFileContents( self ):
         """
             Return the contents of the file, if we could read it.
         """
         return self.file_contents
-    
+
     security.declarePublic( 'getExceptionText' )
     def getExceptionText( self ):
         """


=== CMF/CMFCore/FSPageTemplate.py 1.18.18.3 => 1.18.18.4 ===
--- CMF/CMFCore/FSPageTemplate.py:1.18.18.3	Wed Dec 10 15:53:53 2003
+++ CMF/CMFCore/FSPageTemplate.py	Thu Apr 22 13:47:45 2004
@@ -1,14 +1,14 @@
 ##############################################################################
 #
 # Copyright (c) 2001 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
-# 
+#
 ##########################################################################
 """Customizable page templates that come from the filesystem.
 
@@ -43,7 +43,7 @@
 
 class FSPageTemplate(FSObject, Script, PageTemplate):
     "Wrapper for Page Template"
-     
+
     meta_type = 'Filesystem Page Template'
 
     _owner = None  # Unowned
@@ -54,7 +54,7 @@
             {'label':'Test', 'action':'ZScriptHTML_tryForm'},
             )
             +Cacheable.manage_options
-        ) 
+        )
 
     security = ClassSecurityInfo()
     security.declareObjectProtected(View)
@@ -82,9 +82,9 @@
     def _readFile(self, reparse):
         fp = expandpath(self._filepath)
         file = open(fp, 'r')    # not 'rb', as this is a text file!
-        try: 
+        try:
             data = file.read()
-        finally: 
+        finally:
             file.close()
         if reparse:
             if xml_detect_re.match(data):
@@ -140,7 +140,7 @@
                 raise RuntimeError, msg
             else:
                 raise
-                
+
     security.declarePrivate( '_ZPT_exec' )
     _ZPT_exec = ZopePageTemplate._exec
 
@@ -153,7 +153,7 @@
             response = None
         # Read file first to get a correct content_type default value.
         self._updateFromFS()
-        
+
         if not kw.has_key('args'):
             kw['args'] = args
         bound_names['options'] = kw
@@ -164,7 +164,7 @@
                 response.setHeader('content-type', self.content_type)
         except AttributeError:
             pass
-            
+
         security=getSecurityManager()
         bound_names['user'] = security.getUser()
 
@@ -175,7 +175,7 @@
             keyset = {
                       # Why oh why?
                       # All this code is cut and paste
-                      # here to make sure that we 
+                      # here to make sure that we
                       # dont call _getContext and hence can't cache
                       # Annoying huh?
                       'here': self.aq_parent.getPhysicalPath(),
@@ -195,9 +195,9 @@
             return result
         finally:
             security.removeContext(self)
-        
+
         return result
- 
+
     # Copy over more methods
     security.declareProtected(FTPAccess, 'manage_FTPget')
     manage_FTPget = ZopePageTemplate.manage_FTPget
@@ -229,4 +229,3 @@
 registerFileExtension('html', FSPageTemplate)
 registerFileExtension('htm', FSPageTemplate)
 registerMetaType('Page Template', FSPageTemplate)
-


=== CMF/CMFCore/FSPropertiesObject.py 1.15.12.1 => 1.15.12.2 ===
--- CMF/CMFCore/FSPropertiesObject.py:1.15.12.1	Mon Sep  1 12:02:34 2003
+++ CMF/CMFCore/FSPropertiesObject.py	Thu Apr 22 13:47:45 2004
@@ -1,14 +1,14 @@
 ##############################################################################
 #
 # Copyright (c) 2001 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
-# 
+#
 ##############################################################################
 """ Customizable properties that come from the filesystem.
 
@@ -33,7 +33,7 @@
     meta_type = 'Filesystem Properties Object'
 
     manage_options = ({'label':'Customize', 'action':'manage_main'},)
-    
+
     security = ClassSecurityInfo()
 
     security.declareProtected(ViewManagementScreens, 'manage_main')
@@ -63,7 +63,7 @@
             folder = self.restrictedTraverse(fpath)
             RESPONSE.redirect('%s/%s/manage_propertiesForm' % (
                 folder.absolute_url(), self.getId()))
-    
+
     def _createZODBClone(self):
         """Create a ZODB (editable) equivalent of this object."""
         # Create a Folder to hold the properties.
@@ -83,7 +83,7 @@
 
     def _readFile(self, reparse):
         """Read the data from the filesystem.
-        
+
         Read the file (indicated by exandpath(self._filepath), and parse the
         data if necessary.
         """
@@ -110,7 +110,7 @@
             try:
                 propname, proptv = line.split(':',1)
                 #XXX multi-line properties?
-                proptype, propvstr = proptv.split( '=', 1 ) 
+                proptype, propvstr = proptv.split( '=', 1 )
                 propname = propname.strip()
                 proptype = proptype.strip()
                 propvstr = propvstr.strip()
@@ -127,7 +127,7 @@
             except:
                 raise ValueError, ( 'Error processing line %s of %s:\n%s'
                                   % (lino,fp,line) )
-        self._properties = tuple(map)            
+        self._properties = tuple(map)
 
     if Globals.DevelopmentMode:
         # Provide an opportunity to update the properties.


=== CMF/CMFCore/FSPythonScript.py 1.21.4.1 => 1.21.4.2 ===
--- CMF/CMFCore/FSPythonScript.py:1.21.4.1	Mon Aug  4 16:07:34 2003
+++ CMF/CMFCore/FSPythonScript.py	Thu Apr 22 13:47:45 2004
@@ -1,14 +1,14 @@
 ##############################################################################
 #
 # Copyright (c) 2001 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
-# 
+#
 ##############################################################################
 """ Customizable Python scripts that come from the filesystem.
 
@@ -49,7 +49,7 @@
     _proxy_roles = ()
 
     _owner = None  # Unowned
-    
+
     manage_options=(
         (
             {'label':'Customize', 'action':'manage_main'},
@@ -79,7 +79,7 @@
 
     def _readFile(self, reparse):
         """Read the data from the filesystem.
-        
+
         Read the file (indicated by exandpath(self._filepath), and parse the
         data if necessary.
         """
@@ -129,7 +129,7 @@
                 # Got a cached value.
                 return result
 
-        
+
         # Prepare the function.
         f = self._v_f
         if f is None:
@@ -160,7 +160,7 @@
             result = apply(f, args, kw)
             if keyset is not None:
                 # Store the result in the cache.
-                self.ZCacheable_set(result, keywords=keyset)           
+                self.ZCacheable_set(result, keywords=keyset)
             return result
         finally:
             security.removeContext(self)


=== CMF/CMFCore/FSSTXMethod.py 1.8 => 1.8.12.1 ===
--- CMF/CMFCore/FSSTXMethod.py:1.8	Thu Jan 30 15:26:50 2003
+++ CMF/CMFCore/FSSTXMethod.py	Thu Apr 22 13:47:45 2004
@@ -1,14 +1,14 @@
 ##############################################################################
 #
 # Copyright (c) 2001 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
-# 
+#
 ##############################################################################
 """FSSTXMethod: Filesystem methodish Structured Text document.
 
@@ -91,7 +91,7 @@
     func_code.co_varnames= ()
     func_code.co_argcount=0
     func_code.__roles__=()
-    
+
     func_defaults__roles__=()
     func_defaults=()
 
@@ -133,7 +133,7 @@
             posargs = ( self, REQUEST )
         else:
             posargs = ()
-        
+
         return apply( template, posargs, { 'cooked' : self.cook() } )
 
     security.declareProtected( FTPAccess, 'manage_FTPget' )


=== CMF/CMFCore/FSZSQLMethod.py 1.3.26.1 => 1.3.26.2 ===
--- CMF/CMFCore/FSZSQLMethod.py:1.3.26.1	Mon Sep  1 12:02:34 2003
+++ CMF/CMFCore/FSZSQLMethod.py	Thu Apr 22 13:47:45 2004
@@ -41,13 +41,13 @@
 
     # Use declarative security
     security = ClassSecurityInfo()
-    
+
     security.declareObjectProtected(View)
-    
+
     # Make mutators private
     security.declarePrivate('manage_main','manage_edit','manage_advanced','manage_advancedForm')
     manage=None
-    
+
     security.declareProtected(ViewManagementScreens, 'manage_customise')
     manage_customise = Globals.DTMLFile('custzsql', _dtmldir)
 
@@ -92,16 +92,16 @@
             parameters[pair[0].strip().lower()]=pair[1].strip()
 
         # check for required an optional parameters
-        try:            
+        try:
             title =         parameters.get('title','')
             connection_id = parameters.get('connection id',parameters['connection_id'])
             arguments =     parameters.get('arguments','')
             max_rows =      parameters.get('max_rows',1000)
             max_cache =     parameters.get('max_cache',100)
-            cache_time =    parameters.get('cache_time',0)            
+            cache_time =    parameters.get('cache_time',0)
         except KeyError,e:
             raise ValueError,"The '%s' parameter is required but was not supplied" % e
-        
+
         self.manage_edit(title,
                          connection_id,
                          arguments,


=== CMF/CMFCore/MembershipTool.py 1.32.10.5 => 1.32.10.6 ===
--- CMF/CMFCore/MembershipTool.py:1.32.10.5	Thu Jan 29 11:33:26 2004
+++ CMF/CMFCore/MembershipTool.py	Thu Apr 22 13:47:45 2004
@@ -35,10 +35,10 @@
         import portal_membership as IMembershipTool
 
 default_member_content = '''Default page for %s
- 
+
   This is the default document created for you when
   you joined this community.
- 
+
   To change the content just select "Edit"
   in the Tool Box on the left.
 '''
@@ -63,7 +63,7 @@
     manage_options=( ({ 'label' : 'Configuration'
                      , 'action' : 'manage_mapRoles'
                      },) +
-                     ActionProviderBase.manage_options + 
+                     ActionProviderBase.manage_options +
                    ( { 'label' : 'Overview'
                      , 'action' : 'manage_overview'
                      },
@@ -74,13 +74,13 @@
     #
     security.declareProtected(ManagePortal, 'manage_overview')
     manage_overview = DTMLFile( 'explainMembershipTool', _dtmldir )
- 
+
     #
     #   'portal_membership' interface methods
     #
     security.declareProtected(ManagePortal, 'manage_mapRoles')
     manage_mapRoles = DTMLFile('membershipRolemapping', _dtmldir )
- 
+
     security.declareProtected(SetOwnPassword, 'setPassword')
     def setPassword(self, password, domains=None):
         '''Allows the authenticated member to set his/her own password.
@@ -122,10 +122,10 @@
             u = u.__of__(self.acl_users)
         if (b is nobody and not wrap_anon) or hasattr(b, 'getMemberId'):
             # This user is either not recognized by acl_users or it is
-            # already registered with something that implements the 
+            # already registered with something that implements the
             # member data tool at least partially.
             return u
-        
+
         parent = self.aq_inner.aq_parent
         base = getattr(parent, 'aq_base', None)
         if hasattr(base, 'portal_memberdata'):
@@ -165,7 +165,7 @@
     def getPortalRoles(self):
         """
         Return all local roles defined by the portal itself,
-        which means roles that are useful and understood 
+        which means roles that are useful and understood
         by the portal object
         """
         parent = self.aq_inner.aq_parent
@@ -180,7 +180,7 @@
     security.declareProtected(ManagePortal, 'setRoleMapping')
     def setRoleMapping(self, portal_role, userfolder_role):
         """
-        set the mapping of roles between roles understood by 
+        set the mapping of roles between roles understood by
         the portal and roles coming from outside user sources
         """
         if not hasattr(self, 'role_map'): self.role_map = PersistentMapping()
@@ -211,7 +211,7 @@
         """
         Returns the flag indicating whether the membership tool
         will create a member area if an authenticated user from
-        an underlying user folder logs in first without going 
+        an underlying user folder logs in first without going
         through the join process
         """
         return self.memberareaCreationFlag
@@ -244,23 +244,23 @@
         """
         parent = self.aq_inner.aq_parent
         members =  getattr(parent, 'Members', None)
-        
+
         user = self.acl_users.getUserById( member_id, None )
         if user is None:
             raise ValueError, 'Member %s does not exist' % member_id
 
         if user is not None:
             user = user.__of__( self.acl_users )
-        
+
         if members is not None and user is not None:
             f_title = "%s's Home" % member_id
             members.manage_addPortalFolder( id=member_id, title=f_title )
             f=getattr(members, member_id)
- 
+
             f.manage_permission(View,
                                 ['Owner','Manager','Reviewer'], 0)
             f.manage_permission(AccessContentsInformation,
-                                ['Owner','Manager','Reviewer'], 0)  
+                                ['Owner','Manager','Reviewer'], 0)
 
             # Grant Ownership and Owner role to Member
             f.changeOwnership(user)
@@ -342,7 +342,7 @@
         '''
         user_folder = self.__getPUS()
         return [ x.getId() for x in user_folder.getUsers() ]
-    
+
     security.declareProtected(ManagePortal, 'listMembers')
     def listMembers(self):
         '''Gets the list of all members.
@@ -428,7 +428,7 @@
         doesn't have the View permission on the folder.
         """
         return None
-        
+
     security.declarePublic('getHomeUrl')
     def getHomeUrl(self, id=None, verifyPermission=0):
         """Returns the URL to a member's home folder or None.


=== CMF/CMFCore/PortalFolder.py 1.45.4.2 => 1.45.4.3 ===
--- CMF/CMFCore/PortalFolder.py:1.45.4.2	Sat Jan 31 15:29:56 2004
+++ CMF/CMFCore/PortalFolder.py	Thu Apr 22 13:47:45 2004
@@ -129,7 +129,7 @@
         return filter( lambda typ, container=self:
                           typ.isConstructionAllowed( container )
                      , result )
-    
+
     security.declareProtected(AddPortalFolders, 'manage_addPortalFolder')
     def manage_addPortalFolder(self, id, title='', REQUEST=None):
         """Add a new PortalFolder object with id *id*.
@@ -139,7 +139,7 @@
         if REQUEST is not None:
             return self.folder_contents( # XXX: ick!
                 self, REQUEST, portal_status_message="Folder added")
-    
+
     def _morphSpec(self, spec):
         '''
         spec is a sequence of meta_types, a string containing one meta type,
@@ -159,7 +159,7 @@
                                        % meta_type )
                 new_spec.append(meta_type)
         return new_spec or types
-    
+
     def _filteredItems( self, ids, filt ):
         """
             Apply filter, a mapping, to child objects indicated by 'ids',
@@ -332,7 +332,7 @@
         typeObjectName = registry.findTypeName( name, typ, body )
         if typeObjectName is None:
             return None
-        
+
         self.invokeFactory( typeObjectName, name )
 
         # XXX: this is butt-ugly.
@@ -382,7 +382,7 @@
 
     def _checkId(self, id, allow_dup=0):
         PortalFolder.inheritedAttribute('_checkId')(self, id, allow_dup)
-        
+
         # This method prevents people other than the portal manager
         # from overriding skinned names.
         if not allow_dup:
@@ -431,7 +431,7 @@
                 else:
                     raise 'Unauthorized', permission_name
             #
-            # Old validation for objects that may not have registered 
+            # Old validation for objects that may not have registered
             # themselves in the proper fashion.
             #
             elif method_name is not None:
@@ -492,7 +492,7 @@
             return self.manage_main(self, REQUEST, update_menu=1)
 
 Globals.InitializeClass(PortalFolder)
-    
+
 
 
 class ContentFilter:
@@ -518,28 +518,28 @@
         self.predicates = []
         self.description = []
 
-        if Title is not self.MARKER: 
+        if Title is not self.MARKER:
             self.predicates.append( lambda x, pat=re.compile( Title ):
                                       pat.search( x.Title() ) )
             self.description.append( 'Title: %s' % Title )
 
-        if Creator is not self.MARKER: 
+        if Creator is not self.MARKER:
             self.predicates.append( lambda x, pat=re.compile( Creator ):
                                       pat.search( x.Creator() ) )
             self.description.append( 'Creator: %s' % Creator )
 
-        if Subject and Subject is not self.MARKER: 
+        if Subject and Subject is not self.MARKER:
             self.filterSubject = Subject
             self.predicates.append( self.hasSubject )
             self.description.append( 'Subject: %s'
                                    % string.join( Subject, ', ' ) )
 
-        if Description is not self.MARKER: 
+        if Description is not self.MARKER:
             self.predicates.append( lambda x, pat=re.compile( Description ):
                                       pat.search( x.Description() ) )
             self.description.append( 'Description: %s' % Description )
 
-        if created is not self.MARKER: 
+        if created is not self.MARKER:
             if created_usage == 'range:min':
                 self.predicates.append( lambda x, cd=created:
                                           cd <= x.created() )
@@ -549,7 +549,7 @@
                                           cd >= x.created() )
                 self.description.append( 'Created before: %s' % created )
 
-        if modified is not self.MARKER: 
+        if modified is not self.MARKER:
             if modified_usage == 'range:min':
                 self.predicates.append( lambda x, md=modified:
                                           md <= x.modified() )


=== CMF/CMFCore/RegistrationTool.py 1.20 => 1.20.10.1 ===
--- CMF/CMFCore/RegistrationTool.py:1.20	Thu Feb 13 03:31:01 2003
+++ CMF/CMFCore/RegistrationTool.py	Thu Apr 22 13:47:45 2004
@@ -56,7 +56,7 @@
 
     manage_options = (ActionProviderBase.manage_options +
                      ({ 'label' : 'Overview', 'action' : 'manage_overview' }
-                     , 
+                     ,
                      ) + SimpleItem.manage_options)
 
     #


=== CMF/CMFCore/Skinnable.py 1.10.6.1 => 1.10.6.2 ===
--- CMF/CMFCore/Skinnable.py:1.10.6.1	Fri Jun 20 11:09:20 2003
+++ CMF/CMFCore/Skinnable.py	Thu Apr 22 13:47:45 2004
@@ -1,14 +1,14 @@
 ##############################################################################
 #
 # Copyright (c) 2001 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
-# 
+#
 ##############################################################################
 """ Base class for object managers which can be "skinned".
 
@@ -52,8 +52,8 @@
     def __getattr__(self, name):
         '''
         Looks for the name in an object with wrappers that only reach
-        up to the root skins folder.  
-        
+        up to the root skins folder.
+
         This should be fast, flexible, and predictable.
         '''
         if not name.startswith('_') and not name.startswith('aq_'):
@@ -84,12 +84,12 @@
         if sfn is not None:
             sf = getattr(self, sfn, None)
             if sf is not None:
-               if name is not None:
-                   skinob = sf.getSkinByName(name)
-               if skinob is None:
-                   skinob = sf.getSkinByName(sf.getDefaultSkin())
-                   if skinob is None:
-                       skinob = sf.getSkinByPath('')
+                if name is not None:
+                    skinob = sf.getSkinByName(name)
+                if skinob is None:
+                    skinob = sf.getSkinByName(sf.getDefaultSkin())
+                    if skinob is None:
+                        skinob = sf.getSkinByPath('')
         return skinob
 
     security.declarePublic('getSkinNameFromRequest')
@@ -104,7 +104,7 @@
     security.declarePublic('changeSkin')
     def changeSkin(self, skinname):
         '''Change the current skin.
-        
+
         Can be called manually, allowing the user to change
         skins in the middle of a request.
         '''
@@ -118,7 +118,7 @@
         '''
         Sets up _v_skindata so that __getattr__ can find it.
 
-        Can NOT be called manually to change skins in the middle of a 
+        Can NOT be called manually to change skins in the middle of a
         request! Use changeSkin for that.
         '''
         if REQUEST is None:
@@ -152,9 +152,9 @@
 
     def _checkId(self, id, allow_dup=0):
         '''
-        Override of ObjectManager._checkId().  
-        
-        Allows the user to create objects with IDs that match the ID of 
+        Override of ObjectManager._checkId().
+
+        Allows the user to create objects with IDs that match the ID of
         a skin object.
         '''
         superCheckId = SkinnableObjectManager.inheritedAttribute('_checkId')


=== CMF/CMFCore/SkinsContainer.py 1.6 => 1.6.22.1 ===
--- CMF/CMFCore/SkinsContainer.py:1.6	Thu Aug 22 13:45:53 2002
+++ CMF/CMFCore/SkinsContainer.py	Thu Apr 22 13:47:45 2004
@@ -1,14 +1,14 @@
 ##############################################################################
 #
 # Copyright (c) 2001 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
-# 
+#
 ##############################################################################
 """ Base class for objects that supply skins.
 
@@ -84,7 +84,7 @@
                 # of the new skinob.
                 skinob = partob.__of__(skinob)
         return skinob
-        
+
     security.declarePrivate('getSkinByName')
     def getSkinByName(self, name):
         path = self.getSkinPath(name)


=== CMF/CMFCore/SkinsTool.py 1.26 => 1.26.4.1 ===
--- CMF/CMFCore/SkinsTool.py:1.26	Fri Mar 14 16:52:21 2003
+++ CMF/CMFCore/SkinsTool.py	Thu Apr 22 13:47:45 2004
@@ -74,7 +74,7 @@
 
     manage_options = ( modifiedOptions() +
                       ({ 'label' : 'Overview', 'action' : 'manage_overview' }
-                     , 
+                     ,
                      ) + ActionProviderBase.manage_options
                      )
 
@@ -105,7 +105,7 @@
     security.declareProtected(ManagePortal, 'manage_skinLayers')
     def manage_skinLayers(self, chosen=(), add_skin=0, del_skin=0,
                           skinname='', skinpath='', REQUEST=None):
-        """ Change the skinLayers """                          
+        """ Change the skinLayers """
         sels = self._getSelections()
         if del_skin:
             for name in chosen:
@@ -121,7 +121,7 @@
                 # for hysterical reasons
                 if isinstance(val, ListType):
                     val = ','.join([layer.strip() for layer in val])
-                                        
+
                 if sels[key] != val:
                     self.testSkinPath(val)
                     sels[key] = val
@@ -178,7 +178,7 @@
             return DTMLMethod( __name__=name )
 
         return None
-    
+
     # Make the PUT_factory replaceable
     PUT_factory__replaceable__ = REPLACEABLE
 
@@ -273,9 +273,9 @@
                 cookie = req.cookies.get(self.request_varname, None)
                 if cookie != mskin:
                     resp = req.RESPONSE
-                    
+
                     portalPath = '/' + pu.getPortalObject().absolute_url(1)
-                        
+
                     if not self.cookie_persistence:
                         # *Don't* make the cookie persistent!
                         resp.setCookie( self.request_varname, mskin, path=portalPath )


=== CMF/CMFCore/TypesTool.py 1.53.2.3 => 1.53.2.4 ===
--- CMF/CMFCore/TypesTool.py:1.53.2.3	Mon Jul  7 05:12:29 2003
+++ CMF/CMFCore/TypesTool.py	Thu Apr 22 13:47:45 2004
@@ -325,7 +325,7 @@
 
     product = ''
     factory = ''
- 
+
     #
     #   Agent methods
     #
@@ -502,7 +502,7 @@
     manage_options = ( Folder.manage_options +
                       ActionProviderBase.manage_options +
                       ({ 'label' : 'Overview', 'action' : 'manage_overview' }
-                     , 
+                     ,
                      ))
 
     #


=== CMF/CMFCore/UndoTool.py 1.14.10.1 => 1.14.10.2 ===
--- CMF/CMFCore/UndoTool.py:1.14.10.1	Thu Mar 11 08:08:26 2004
+++ CMF/CMFCore/UndoTool.py	Thu Apr 22 13:47:45 2004
@@ -45,7 +45,7 @@
                                 , action=Expression(
                text='string:${portal_url}/undo_form')
                                 , condition=Expression(
-               text='member') 
+               text='member')
                                 , permissions=(ListUndoableChanges,)
                                 , category='global'
                                 , visible=1
@@ -58,7 +58,7 @@
     manage_options = ( ActionProviderBase.manage_options +
                        SimpleItem.manage_options +
                        ({ 'label' : 'Overview', 'action' : 'manage_overview' }
-                     , 
+                     ,
                      ))
     #
     #   ZMI methods


=== CMF/CMFCore/WorkflowCore.py 1.12 => 1.12.28.1 ===
--- CMF/CMFCore/WorkflowCore.py:1.12	Thu Jul 25 11:06:39 2002
+++ CMF/CMFCore/WorkflowCore.py	Thu Apr 22 13:47:45 2004
@@ -1,14 +1,14 @@
 ##############################################################################
 #
 # Copyright (c) 2001 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
-# 
+#
 ##############################################################################
 
 """ Common pieces of the workflow architecture.


=== CMF/CMFCore/WorkflowTool.py 1.38 => 1.38.4.1 ===
--- CMF/CMFCore/WorkflowTool.py:1.38	Fri Mar 14 14:11:39 2003
+++ CMF/CMFCore/WorkflowTool.py	Thu Apr 22 13:47:45 2004
@@ -55,7 +55,7 @@
 
 class WorkflowTool (UniqueObject, Folder):
 
-    """ Mediator tool, mapping workflow objects 
+    """ Mediator tool, mapping workflow objects
     """
     id = 'portal_workflow'
     meta_type = 'CMF Workflow Tool'
@@ -210,7 +210,7 @@
         """ Returns a mapping of the catalog variables that apply to ob.
 
         o Invoked by portal_catalog.
-        
+
         o Allows workflows to add variables to the catalog based on
           workflow status, making it possible to implement queues.
         """
@@ -233,12 +233,12 @@
         """ Returns a list of actions to be displayed to the user.
 
         o Invoked by the portal_actions tool.
-        
+
         o Allows workflows to include actions to be displayed in the
           actions box.
 
         o Object actions are supplied by workflows that apply to the object.
-        
+
         o Global actions are supplied by all workflows.
         """
         chain = self.getChainFor(info.content)
@@ -277,11 +277,11 @@
     def doActionFor(self, ob, action, wf_id=None, *args, **kw):
 
         """ Execute the given workflow action for the object.
-        
+
         o Invoked by user interface code.
 
         o Allows the user to request a workflow action.
-        
+
         o The workflow object must perform its own security checks.
         """
         wfs = self.getWorkflowsFor(ob)
@@ -310,11 +310,11 @@
     def getInfoFor(self, ob, name, default=_marker, wf_id=None, *args, **kw):
 
         """ Return a given workflow-specific property for an object.
-        
+
         o Invoked by user interface code.
-        
+
         o Allows the user to request information provided by the workflow.
-        
+
         o The workflow object must perform its own security checks.
         """
         if wf_id is None:
@@ -364,7 +364,7 @@
 
         """ Notifies all applicable workflows of an action before it
             happens, allowing veto by exception.
-            
+
         o Unless an exception is thrown, either a notifySuccess() or
           notifyException() can be expected later on.
 
@@ -396,7 +396,7 @@
     def getHistoryOf(self, wf_id, ob):
 
         """ Return the history of an object.
-        
+
         o Invoked by workflow definitions.
         """
         if hasattr(aq_base(ob), 'workflow_history'):


=== CMF/CMFCore/__init__.py 1.23 => 1.23.10.1 ===
--- CMF/CMFCore/__init__.py:1.23	Thu Feb 13 03:31:01 2003
+++ CMF/CMFCore/__init__.py	Thu Apr 22 13:47:45 2004
@@ -147,4 +147,3 @@
                            PortalFolder.manage_addPortalFolder, )
                      , fti=PortalFolder.factory_type_information
                      ).initialize( context )
-


=== CMF/CMFCore/utils.py 1.39.2.2 => 1.39.2.3 ===
--- CMF/CMFCore/utils.py:1.39.2.2	Mon Jun 23 08:21:15 2003
+++ CMF/CMFCore/utils.py	Thu Apr 22 13:47:45 2004
@@ -1,14 +1,14 @@
 ##############################################################################
 #
 # Copyright (c) 2001 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
-# 
+#
 ##############################################################################
 
 import os
@@ -238,13 +238,13 @@
     for p in perms: d[p[0]] = None
     r = gather_permissions(ob.__class__, [], d)
     if all:
-       if hasattr(ob, '_subobject_permissions'):
-           for p in ob._subobject_permissions():
-               pname=p[0]
-               if not d.has_key(pname):
-                   d[pname]=1
-                   r.append(p)
-       r = list(perms) + r
+        if hasattr(ob, '_subobject_permissions'):
+            for p in ob._subobject_permissions():
+                pname=p[0]
+                if not d.has_key(pname):
+                    d[pname]=1
+                    r.append(p)
+        r = list(perms) + r
     return r
 
 security.declarePrivate('_modifyPermissionMappings')
@@ -535,9 +535,9 @@
 def initializeBasesPhase2(zclasses, context):
 
     """ Finishes ZClass base initialization.
-    
+
     o 'zclasses' is the list returned by initializeBasesPhase1().
-    
+
     o 'context' is a ProductContext object.
     """
     for zclass in zclasses:
@@ -582,7 +582,7 @@
         body parts perfectly rendered.
         """
         for c in doc.getChildNodes():
-           getattr(self, self.element_types[c.getNodeName()])(c, level, output)
+            getattr(self, self.element_types[c.getNodeName()])(c, level, output)
 
 CMFHtmlWithImages = _CMFHtmlWithImages()
 
@@ -645,11 +645,11 @@
     # However, that's an acceptable risk as people don't seem
     # to re-use product names ever (it would create ZODB persistence
     # problems too ;-)
-    
+
     p = os_path.normpath(p)
     if os_path.isabs(p):
         return p
-    
+
     for ppath in ProductsPath:
         abs = os_path.join(ppath, p)
         if os_path.exists(abs):
@@ -669,6 +669,6 @@
     if index == -1:
         index = p.rfind('products')
         if index == -1:
-            # couldn't normalise            
+            # couldn't normalise
             return p
     return p[index+len('products/'):]


=== CMF/CMFCore/version.txt 1.6.22.5 => 1.6.22.6 ===
--- CMF/CMFCore/version.txt:1.6.22.5	Thu Feb  5 01:06:34 2004
+++ CMF/CMFCore/version.txt	Thu Apr 22 13:47:45 2004
@@ -1 +1,2 @@
-CMF-1.4.3-rc1
+CMF-1.4.3
+




More information about the CMF-checkins mailing list