[CMF-checkins] SVN: CMF/trunk/ - preparing for the 2.0.0-alpha
jens at dataflake.org
Sun Jan 22 10:11:36 EST 2006
Log message for revision 41409:
- preparing for the 2.0.0-alpha release
--- CMF/trunk/CHANGES.txt 2006-01-22 15:01:20 UTC (rev 41408)
+++ CMF/trunk/CHANGES.txt 2006-01-22 15:11:33 UTC (rev 41409)
@@ -1,4 +1,4 @@
-HEAD only (unreleased)
+CMF 2.0.0-alpha (2006/01/22)
@@ -286,6 +286,6 @@
- Reordered base classes of File and Image, to allow use of super().
+CMF 1.5.x and previous
- For a complete list see CHANGES.txt of CMF-1_5-branch.
+ For a complete list of changes see HISTORY.txt.
--- CMF/trunk/CMFActionIcons/version.txt 2006-01-22 15:01:20 UTC (rev 41408)
+++ CMF/trunk/CMFActionIcons/version.txt 2006-01-22 15:11:33 UTC (rev 41409)
@@ -1 +1 @@
--- CMF/trunk/CMFCalendar/version.txt 2006-01-22 15:01:20 UTC (rev 41408)
+++ CMF/trunk/CMFCalendar/version.txt 2006-01-22 15:11:33 UTC (rev 41409)
@@ -1 +1 @@
--- CMF/trunk/CMFCore/version.txt 2006-01-22 15:01:20 UTC (rev 41408)
+++ CMF/trunk/CMFCore/version.txt 2006-01-22 15:11:33 UTC (rev 41409)
@@ -1 +1 @@
--- CMF/trunk/CMFDefault/version.txt 2006-01-22 15:01:20 UTC (rev 41408)
+++ CMF/trunk/CMFDefault/version.txt 2006-01-22 15:11:33 UTC (rev 41409)
@@ -1 +1 @@
--- CMF/trunk/CMFTopic/version.txt 2006-01-22 15:01:20 UTC (rev 41408)
+++ CMF/trunk/CMFTopic/version.txt 2006-01-22 15:11:33 UTC (rev 41409)
@@ -1 +1 @@
--- CMF/trunk/CMFUid/version.txt 2006-01-22 15:01:20 UTC (rev 41408)
+++ CMF/trunk/CMFUid/version.txt 2006-01-22 15:11:33 UTC (rev 41409)
@@ -1 +1 @@
--- CMF/trunk/DCWorkflow/version.txt 2006-01-22 15:01:20 UTC (rev 41408)
+++ CMF/trunk/DCWorkflow/version.txt 2006-01-22 15:11:33 UTC (rev 41409)
@@ -1 +1 @@
--- CMF/trunk/HISTORY.txt 2006-01-22 15:01:20 UTC (rev 41408)
+++ CMF/trunk/HISTORY.txt 2006-01-22 15:11:33 UTC (rev 41409)
@@ -1,3 +1,847 @@
+After CMF 1.5.5
+ Bug Fixes
+ - CMFDefault.DiscussionItem: Deleting a discussion reply would not
+ recurse and left items below the deleted reply still cataloged
+ - Corrected the HelpSystem documentation for DCWorkflow Guards
+ - CMFCore utils: Synced _checkPermission with Zope 2.8.5 code.
+ checkPermission of Zope 2.8.5 and later contains bug fixes and respects
+ proxy roles, but for backwards compatibility CMF 1.5 still needs its own
+ - Made unit tests close the request properly.
+ - Made cut / copy / paste tests more independent from implementation
+ details of '_verifyObjectPaste'.
+ - Modified several deprecation warnings to indicate point-of-use of the
+ deprecated feature.
+CMF 1.5.5 (2005/11/20)
+ Bug Fixes
+ - DefaultWorkflowDefinition: Changed meta_type to make it unique.
+ - CMFSetup: fixed empty attribute parsing when an encoding is
+ - CMFCore: removed old backward compatibility code that slowed down
+ TypeInformation.allowType and gave PortalFolder.allowedContentTypes
+ quadratic complexity.
+ - Removed deprecated 'all_cmf_tests.py' and supporting 'test_all.py'
+ from products (use 'zopectl test' to run CMF tests instead).
+CMF 1.5.5-beta (2005/11/06)
+ Bug Fixes
+ - CMFCore.DynamicType/ActionProviderBase: If an action cannot be looked
+ up, provide a more helpful debugging message for the error log.
+ - CMFCore.MemberDataTool: Fixed the pruneMemberData functionality in the
+ ZMI: Now it is enough to press the button once.
+ - Collector #381: CMFCore unit tests depended on CMFDefault / workflow.
+ - CalendarTool: If an event ends at exactly midnight, don't show it
+ in the list of events for the day starting at midnight.
+ - CMFCore: added 'skinname' to the thread-specific tuple created by
+ the Skinnable base class to cache the skin path lookup, to facilitate
+ querying later; added a 'getCurrentSkinName' to the Skinnable API
+ to do the query. Thanks to Laurent Rowe for the patch.
+ - CMFSetup: added support for importing and exporting workflow script
+ metadata for scripts that are External Methods. One very important
+ difference to other scripts remains: Since the CMFSetup machinery
+ cannot access the filesystem code for external methods it only
+ saves the data needed to instantiate the ZODBi-based External Method
+ object. If, during an import, the filesystem-based code cannot be
+ found, the import will fail.
+ - CMFActionIcons: added support for exporting / importing
+ action icons tool configuration (via GenericSetup).
+ - CMFSetup: added support for configuring content type registry.
+ - CMFSetup: added support for configuring caching policy manager.
+ - CMFSetup: added support for configuring cookie authentication and
+ mailhost tools (http://www.zope.org/Collectors/CMF/387).
+ - CMFCore.CachingPolicyManager: Caching policies can now control all the
+ Cache-Control tokens defined in the HTTP 1.1 spec (s-maxage, public,
+ private, no-transform). When no-cache is enabled, a Pragma: no-cache
+ header is also sent for HTTP 1.0 clients. Thanks go to Geoff Davis
+ for contributing the necessary patches.
+ - CMFCore.FSPageTemplate: These now have the option to return a status
+ 304 and no content when a conditional GET is sent. This is a potential
+ significant win for sites. This behavior is activated on the
+ CachingPolicyManager by using policies that set suitable ETag headers
+ when delivering the content. Geoff Davis invested the time to add
+ this feature.
+ - CMFDefault.Portal: deprecated 'manage_addCMFSite'.
+ - Collectors #384: Added '__traceback_info__' to FSDTMLMethod's
+ call-stack etnry.
+ - Collector #383: Added tab to 'portal_uidhandler' tool to allow
+ querying objects given UID.
+ - CMFCatalogAware: refactoring. Defines now 2 methods,
+ _getCatalogTool() and _getWorkflowTool(), that are used to find
+ the catalog and workflow tool. It's now possible to override
+ these methods using inheritence for a given content type to
+ specify another catalog or workflow tool the content type can
+ - CMFSetup: allow export of properties of old objects that were
+ stored as lists (instead of tuples now).
+CMF 1.5.4 (2005/09/04)
+ Bug Fixes
+ - CatalogTool: Made sure the catalog_object method works with Zope 2.8.
+ The new 'pghandler' argument was missing. This broke at least the
+ refreshCatalog method used by 'Update Catalog'.
+CMF 1.5.4-beta (2005/08/28)
+ Bug Fixes
+ - CMFCore.utils: The return value from _mergedLocalRoles allowed
+ direct manipulation of objects' local role settings since it
+ contained references to the actual values instead of copies.
+ - CMFTopic.DateCriteria: The behavior and naming of date criteria
+ operators was very confusing and in many cases unexpected and
+ wrong. For that reason e.g. Plone replaced the implementation
+ with a more user-friendly handling which is hereby introduced
+ to CMF proper. (http://www.zope.org/Collectors/CMF/339)
+ - CMFCore.PortalContent, CMFCore.FSSTXMethod, CMFTopic.Topic,
+ CMFDefault.SkinnedFolder: Cache headers from the Caching Policy Manager
+ never got set for DTML-based skins due to the way the view template
+ __call__ method was invoked. (http://www.zope.org/Collectors/CMF/374)
+ - CMFCore.FSImage and FSFile: Unlike the current behavior of Zope itself,
+ FSImage and FSFile would set a content-length response header for 304
+ (not modified) responses, which should not be done according to
+ RFC 2616. It won't do so anymore, but Zope itself will still force a
+ content-length header in ZServer.HTTPResponse. This misbehavior
+ has been filed as a Zope issue (http://www.zope.org/Collectors/Zope/1866).
+ - PortalFolder: Improved the _checkId method.
+ Method Aliases mask objects with matching IDs. Thus _checkId() and
+ checkIdAvailable() now make sure non-managers can't create objects with
+ IDs already taken by Method Aliases of the current folder.
+ - CMFDefault.Image and CMFDefault.File: When calling the constructor,
+ any intelligent content type detection would be destroyed by the
+ call to initialize Dublin Core values, which would overwrite the
+ content_type. It is now preserved, if possible.
+ - CMFTopic.Topic: Made Topics a tad more useful by subclassing from
+ CMFDefault.SkinnedFolder instead of CMFCore.PortalFolder, because
+ SkinnedFolder is CatalogAware. Topics now offer useful information
+ for Title, Description and SearchableText, so Topic objects can
+ be located in the portal by using the standars search facilities.
+ - CMFCore.PortalFolder._checkId() allows root doted prefixed name
+ object overrides.
+CMF 1.5.3 (2005/08/07)
+ Bugs fixed
+ - When the CMFBTreeFolder was moved into CMFCore, its base class was
+ changed to PortalFolderBase. This broke an assumption in the
+ portal_syndication tool that relied on all syndication containers
+ deriving from PortalFolder (http://www.zope.org/Collectors/CMF/369)
+CMF 1.5.3-beta (2005/08/02)
+ Bugs Fixed
+ - Changed the INSTALL_SVN instructions to conform to the new branch
+ and tag naming scheme instituted for the subversion repository.
+ - Apply an interim fix for slow pathwalking implementation in
+ development mode on Windows (http://www.zope.org/Collectors/CMF/367)
+ Note that a better fix would be to leverage pywin32 APIs for
+ file / directory monitoring.
+ - FSObject.manage_doCustomize() was broken for folderish objects on Zope
+ 2.8 because manage_permission requires a context to work.
+ (see http://www.zope.org/Collectors/CMF/368)
+ - CMFCore/FSPropertiesObject and CMFCore/FSMetadata: Removed a wrongly
+ inserted DeprecationWarning in the FSPropertiesObject class and
+ put it into the FSMetadata class. We are not deprecating ".props"
+ files, but ".properties" and ".security".
+ - Change CVS checkout documentation to their equivalent Subversion
+ - In CMFSetup, make sure to give special treatment to both CVS and
+ .svn folders where this is necessary (e.g. to implicitly skip them
+ when importing profiles)
+ - Made sure FSDVTest always deletes its temporary folder on tearDown.
+ - Fix DefaultWorkflowDefinition bug on isActionSupported() for the
+ keywargs support to reflect DCWorkflowDefinition changes. Add a
+ test case for this definition as well.
+ - CMFCatalogAware: reindexObjectSecurity() now always reindexes the
+ catalog objects without changing their catalog uid. This is useful
+ for third-party code that indexes objects with special uids.
+CMF 1.5.2 (2005/07/17)
+ Bugs Fixed
+ - CMFCore/ActionInformation.py: Permissions of action categories starting
+ with 'document' are now evaluated in the object context instead of the
+ portal context. This should probably be generalized some more.
+ - Added testing framework to suppress / examine output from warnings
+ module and from zLOG.
+ - CMFUid/UniqueIdGeneratorTool.py: Replaced the old BTree.Length.Length
+ implementation by a simple counter. Using a BTree.Length.Length object
+ as counter may have caused setting the same unique id to multiple
+ objects under high load. The tools counter gets automigrated on the
+ first access.
+ - CMFCore/CMFBTreeFolder.py: Moved here from Zope core's
+ Products/BTreeFolder2; conditional import, with module alias, into
+ __init__.py, for compatibility with Zope 2.7; 2.8.0 has BTreeFolder2
+ in the core (see http://www.zope.org/Collectors/Zope/1813).
+CMF 1.5.2beta2 (2005/07/08)
+ Features Added
+ - CMFDefault/skins/zpt_generic/talkback_tree: Add link to allow
+ managers to delete replies (http://www.zope.org/Collectors/CMF/38).
+ Bugs Fixed
+ - CMFDefault.utils.parseHeadersBody: use standard library's 'rfc822'
+ module to parse metadata headers, to take advantage of better handling
+ of edge cases.
+ - CMFDefault.utils.formatRFC822Headers: strip trailing blank line
+ of multi-line value, to prevent premature halt of parsing.
+ - CMFCore.MembershipTool: allow 'getMemberById' to crawl up the
+ hierarchy of user folders until it finds the user. This means that
+ users from any user folder in or above the portal will be treated
+ as full members of the portal.
+ (http://www.zope.org/Collectors/CMF/354, also
+ - CatalogTool: Added manage_convertIndexes.
+ This method should not be used with Zope 2.7. It overrides the broken
+ manage_convertIndexes of Zope 2.8.0.
+ - CMFCore.WorkflowTool: Make (deprecated) WorkflowInformation objects
+ schema-compatible with current ActionInformation.
+ - CMFCore.utils.ToolInit: For icon registration to work with ToolInit
+ you would have to have the same product_name parameter as the actual
+ product name of the product. product_name is now optional, defaulting
+ to the real product name. It is also deprecated, and starting with
+ CMF1.6 product_name it will be ignored.
+ - CMFSetup.workflow: scripts were not exported, they're now in a
+ 'scripts' subdirectory, and encoding was not propagated at import
+ - Moved tests which used to 'import Zope' to try 'import Zope2'
+ (with a fallback for Zope 2.7). Thanks to sacco for the patch!
+ - CatalogTool: Removed obsolete Vocabulary.
+CMF 1.5.2beta (2005/06/26)
+ New Features
+ - CMFDefault browser: Added browser package and five_template.
+ This allows to use the main_template for forms generated by Five.
+ - CMFDefault skins: Added style_slot to main_template.
+ - CMFCore.PortalFolder: A new class PortalFolderBase was added. The
+ class is a subclass of Folder while PortalFolder is a subclass of
+ PortalFolderBase and OrderedFolder. It was added for software which
+ is incompatible w/ the ordered interface.
+ - CMFCore.ActionProviderBase: Add the methods _getOAI and _getExprContext
+ which can be used to hook in custom version of getOAI() and
+ - CMFCore.TypesTool.TypeInformation.queryMethodID(): Add new argument
+ context=None and change all calls of queryMethodID to apply the context.
+ - Interfaces: Added newstyle (Zope 3) interfaces.
+ This change has no effect on Zope 2.7 without Five.
+ - CMFSetup.skins: Small featurelet that adds a new keyword to the
+ "layer" tag in skins.xml named "remove". If "remove" is
+ specified, the named layer will be explicitly removed from the
+ skins path(s).
+ - CMFCatalogAware: reindexObjectSecurity() now supports an
+ optional argument 'skip_self' that prevents the object itself
+ from being reindexed, but its descendants still are. Allows an
+ optimization when you want to reindex all the idxs *and* the
+ security in a single shot with reindexObject().
+ - CMFCatalogAware: allow easy subclassing of the "security indexes"
+ that are reindexed by reindexObjectSecurity(), through the
+ attribute _cmf_security_indexes.
+ - doActionFor() propagates **kw to isActionSupported() through
+ _checkTransitionGuard() until the guard.check() method so that
+ StateChangeInfo() can be constructed with those kwargs.
+ Bug Fixes
+ - ActionInfo: Make 'setActionExpression' sane if passed a string
+ which is already prefixed with "string;".
+ - ActionInfo: Fixed copy method.
+ - CMFTopic.Topic/CMFCore.PortalContent: Clean up a previous change
+ by changing __call__ methods to be aligned with what's on CVS
+ HEAD and using the old _getViewFor function as a fallback to
+ retain backwards compatibility.
+ - DCWorkflow: Add a note to the Transitions and States forms
+ explaining that the renaming actions will not automatically
+ update any items in the workflow that might be affected by
+ the change. (http://www.zope.org/Collectors/CMF/89)
+ - CMFDefault.SyndicationTool: Zope 2.8 raises AttributeError where
+ earlier Zopes used to raise KeyError.
+ - Set cache headers in 304 responses from FSImage / FSFile
+ - CMFCore.DirectoryView: Do not cause ZODB writes or ConflictError
+ if an old DirectoryView with a non-existing path is left. Sends a
+ warning to stderr about those.
+ - CMFSetup utils: Fixed handling of comments and empty descriptions.
+ - CMFDefault.MetadataTool: When asked for a non-existing metadata
+ policy, the tool would return the default policy unwrapped. This
+ means, at a minimum, that the security declarations on the
+ MetadataElementPolicy instance would never be applied correctly.
+ - CMFSetup.workflow: Make sure to set the "permissions" attribute on
+ DCWorkflow definitions to a tuple, which is expected throughout
+ the DCWorkflow code. (http://www.zope.org/Collectors/CMF/346)
+ - CMFCore.FSObject: Try to find and call the appropriate method to
+ determine the skins tool name instead of hardcoding "portal_skins".
+ - CMFCore.FSZSQLMethod: Add the forgotten setting to allow simple
+ direct traversal for ZSQL methods to the list of settings recognized
+ and applied by FSZSQLMethods during instantiation and customization.
+ - CMFCore.FSObject: When customizing filesystem objects in the skins
+ tool, some security-related settings were not transferred to the
+ customized object, namely proxy roles and permission settings.
+ - Sync catalog metadata column with correct name of DublinCore string
+ ExpirationDate method. (http://www.zope.org/Collectors/CMF/345)
+ - CMFSetup: the import/export of portal types uses a new XML format
+ that can hold arbitrary properties, to facilitate subclassing. The
+ old format is still recognized when importing.
+ - WorkflowTool: Marked WorkflowInformation and getActionsFor deprecated.
+ getActionsFor is superseded by listActionInfos and WorkflowInformation
+ was just used by getActionsFor.
+ - Made INSTALL.txt more general so it does not refer to specific CMF
+ version numbers in the 1.5 series and thus won't look outdated from
+ one release to the next.
+ - CMFCatalogAware: reindexObjectSecurity() optimizations in case
+ of an indexable container.
+ Bug Fixes
+ - CMFDefault.SyndicationTool: Coerce property values into correct
+ types. (http://www.zope.org/Collectors/CMF/344)
+ - CMFCore.Skinnable: Don't catch ConflictError in __of__.
+ - CMFCore.CMFCatalogAware: In reindexObjectSecurity, use
+ _unrestrictedGetObject when available, and LOG when the object
+ cannot be retrieved.
+ New Features
+ - MemberDataTool: setSecurityProfile (called by MembershipTool's
+ setPassword) now uses the userFolderEditUser() API of the user
+ folder to change user information.
+ - DCWorkflow: To bridge some of the bound variable name differences
+ between TALES expressions used in DCWorkflow and those used elsewhere
+ in the CMF, added two "aliases" to the expression context that reflect
+ the CMF conventions: "object" points to "here", and "folder" points
+ to "container" (http://www.zope.org/Collectors/CMF/338)
+ - CMFSetup: Improved update directives for extension profiles.
+ See the new PROFILES.txt for details.
+ - CMFCore.DirectoryView: Made list of file names to ignore configurable.
+ The previously hardcoded list of files to ignore when creating their
+ ZODB representations can now be configured by passing a sequence of
+ names to registerDirectory, which will be ignored in addition to the
+ standard list of ignored names (http://www.zope.org/Collectors/CMF/319).
+ - CMFCalendar: Added extension profile.
+ You can now set up CMFCalendar in one step together with a new site or
+ add calendar support to an existing site using the portal_setup tool.
+ - CMFSetup: Added support for extension profiles.
+ Extension profiles are profile fragments used to modify base profiles.
+ They can be shipped with add-on products or used for customization
+ steps. Importing an extension profile adds or overwrites existing
+ settings in a fine-grained way. You can't export extension profiles.
+ Snapshots and exports always represent the merged settings.
+ - CMFSetup: Sometimes it is not necessary or desirable to create a
+ snapshot upon initial site creation. Matter of fact when run in a unit
+ test situation, addConfiguredSite can throw permission errors during the
+ snapshot-taking because no specific SecurityManager has been set up.
+ Add new flag "snapshot" to factory.addConfiguredSite to turn off
+ snapshotting if desired
+ Bug Fixes
+ - TypesTool: Removed _checkViewType.
+ The control-content-creating-by-typeinfo-view-permission feature did
+ never work. Use DCWorkflow's allowCreate method instead.
+ - CMFDefault.DublinCore: Force local timezone when displaying date
+ metadata. (http://www.zope.org/Collectors/CMF/325)
+ - CMFCore.SkinsTool: Prevent adding skin layers with invalid path elements
+ There is a disconnect between the ability to define what can be ignored
+ inside DirectoryViews and what can be put into skins paths in
+ the SkinsTool. Now a check is done inside addSkinSelection that makes
+ sure the same ignore-policy that is used for the DirectoryView is
+ applied to the elements of a skin path.
+ - CMFCore.FSZSQLMethod: Added configuration parameters that were left out.
+ Some of the configuration parameters to ZSQL methods, specifically
+ those describing custom pluggable brains classes and the
+ connection_hook, were not implemented in FSZSQLMethod. Also added a
+ first small unittest module for FSZSQLMethod testing.
+ - CMFSetup utils: Modified ConfiguratorBase.
+ If the DEFAULT value is used, CONVERTER is no longer called. This makes
+ setting DEFAULT more intuitive. While very unlikely, the change might
+ break existing third party configurators.
+ - CMFSetup: Reduced probability of profile ID conflicts.
+ The first argument of 'registerProfile' is now 'name' instead of
+ 'profile_id'. The profile ID combines 'name' and 'product'.
+ - CMFSetup.skins made the assumption that the CMF site can always
+ acquire REQUEST and would set up the current skin with it. Added a test
+ to see if REQUEST is available and if it is not, skip the step that
+ sets up the current skin.
+ - CMFCalendar zpt skin: Removed dependency on dtml layer.
+ - CMFCalendar: Modified install script.
+ Adds date indexes instead of field indexes. No longer adds the dtml
+ layer to zpt skins.
+ - CMFCore.utils: Added 'transaction' for backwards compatibility.
+ CMF now uses the Zope 2.8 transaction API und uses utils.transaction as
+ fallback in Zope 2.7.
+ - CMFCore.TypesTool: Added backwards compatibility code to the fix for
+ collector issue 49. (http://www.zope.org/Collectors/CMF/49)
+ - CMFCore.Skinnable: Changed the way layers (skindata) are stored
+ (no more _v_ attribute) to prevent them being lost in the middle
+ of a request when memory pressure is high. This change is
+ incompatible with SpeedPack, but includes one of its two
+ optimizations about skins. (http://www.zope.org/Collectors/CMF/198)
+ - DublinCore: Fixed creators upgrade to not call a potentially
+ costly method on the user folder.
+ - CMFCatalogAware: When reindexing security, all subobjects must be
+ reindexed even if they are not visible by the current user. Also
+ fixed to work correctly with Zope >= 2.7.6.
+CMF 1.5.1beta (2005/03/24)
+ New Features
+ - CMFCore.TypesTool and CMFCore.PortalFolder: If invokeFactory is
+ called from code it will now hand back the created object's ID. This
+ does not change any behavior when called directly from the web. Both
+ methods returned None before, so there is no dependencies anywhere
+ on their return values, anyway. (http://www.zope.org/Collectors/CMF/331)
+ - CMFSetup: When importing skins configurations you can now specify a
+ layer to be inserted after a given layer. Previously you could only
+ insert before a given layer.
+ - CatalogTool: All default FieldIndex instances used for indexing
+ DateTime values are now created as DateIndex instances instead. All
+ default TextIndex instances are now created as ZCTextIndex instances.
+ (CMF collector issues http://www.zope.org/Collectors/CMF/191 and
+ - CMFSetup: Improved 'skip purge' behavior of the skins import handler.
+ If purging is disabled, it's now possible to modify existing skin
+ configurations. You can use '*' as wildcard for skin-path ids and a
+ 'insert-before' attribute to specify where to insert a new layer.
+ - CMFSetup tool: Improved 'Properties' tab.
+ The active site configuration can now be selected from a list of
+ registered profiles and stored snapshots.
+ - CMFSetup: Added handlers for site properties.
+ - CMFSetup utils: Added 'ConfiguratorBase' class.
+ It's now recommended to use this class as base for all configurators.
+ The class includes some generic methods to handle subobjects and
+ - FSObject: Now FSObject-derived items like FSImage or FSFile can have
+ security declarations inside the metadata file.
+ - profiles: Moved 'default' profile to CMFDefault.
+ Using the new 'importVarious' handler this profile now allows to create
+ CMF sites identical to those created with manage_addCMFSite.
+ - CMFDefault: Added 'importVarious' setup handler.
+ This provisional handler will be removed again as soon as full handlers
+ are implemented for these steps.
+ - CachePolicyManager: You can now set a ETag using a TALES expression
+ - RegistrationTool: The regular expression that limits what people
+ can put in as a valid member ID is now configurable TTW in the
+ portal_registration tool (http://www.zope.org/Collectors/CMF/117)
+ Bug Fixes
+ - CMFCore.MembershipTool: Change a couple conditional tests that tried to
+ determine if the MemberDataTool had been found to explicitly test for
+ None as the return value instead of a truth test on the tool itself, which
+ would fail unexpectedly on folderish MemberDataTool implementations
+ that don't have actual content (http://www.zope.org/Collectors/CMF/330)
+ - CMFCore.CachingPolicyManager and CMFCore.ActionInformation: The names
+ available to TALES expressions throughout the CMF showed some
+ inconsistencies. To prevent confusion the names "content" and
+ "content_url" that were used for Cache Policy Manager policies as well
+ as the special ActionInformation.oai class are now deprecated and will
+ be removed in CMF 1.7. The canonical names to be used are "object" and
+ "object_url", which matches all other CMF expression contexts with
+ DCWorkflow being the only exception due to its non-CMF roots.
+ - CMFCore.PortalFolder: Cataloging portal folders was prevented by
+ overriding the typical indexing calls, but one of them was forgotten,
+ so they still got cataloged. (http://www.zope.org/Collectors/CMF/309)
+ - CMFCore.DirectoryView: A special __setattr__ on the
+ DirectoryViewSurrogate class made sure to write changes through to the
+ underlying DirectoryView, but there was no equivalent __delattr__
+ cleanup. (http://www.zope.org/Collectors/CMF/316)
+ - CMFDefault.RegistrationTool: Allow email addresses with an underscore
+ as the last element of the alias part.
+ - FSPageTemplate: Ensure that if a content type is specified using a
+ .metadata file we respect it (http://www.zope.org/Collectors/CMF/320)
+ - CMFCore.tests.test_PortalFolder: fixed testing bug copied forward
+ from OFS.tests.testCopySupport.
+ - CMFDefault.RegistrationTool: Allow '+' in e-mail addresses.
+ - ActionInfo: Fixed issue with oldstyle Action info mappings.
+ The 'allowed' key was broken for non-empty 'permissions'.
+ - CMFDefault.DiscussionTool: 'getDiscussionFor' sometimes returned
+ unwrapped talkback objects.
+ - CMFSite: Made 'title' and 'description' properties undeletable.
+ This change has no effect on existing sites.
+ - FSObject: Ensure that a cache manager association on a Filesystem-based
+ object in the Skins Tool gets applied to the customized object in the
+ ZODB upon customization. (http://www.zope.org/Collectors/CMF/304)
+ - TypesTool: Changed the way available factory_type_informations are
+ presented on the dropdown list when adding a new type from a
+ filesystem FTI to the Types Tool. The new representation includes
+ the "id" as set in the FTI instead of just the product name and the
+ meta_type. (http://www.zope.org/Collectors/CMF/49)
+ - CMFSetup: Fixed import of workflow bindings.
+ The 'workflow' import step has to be run after the 'typeinfo' step.
+ - CMFCore.CatalogTool: Take into account query restrictions on
+ 'effective' or 'expires' attributes during a search.
+ - WorkflowTool: Fixed 'setChainForPortalTypes'.
+ If 'chain' was an empty string, it wasn't set correctly.
+ - FSFile, FSImage: Made available to caching policy manager as
+ standard content. (http://www.zope.org/Collectors/CMF/299)
+ - FSDTMLMethod: Small code cleanup to remove duplicate variable
+ definition (http://www.zope.org/Collectors/CMF/291)
+ - Portal: Fixed 'setupDefaultProperties'.
+ Backwards compatibility was broken and the 'default_charset' argument
+ was ignored.
+ - Document/NewsItem: If the "plain text" format is selected the
+ content will no longer be tested for HTML and reduced to text
+ between opening and closing "body" tags
+ - Document/NewsItem: A call to setFormat will now re-cook the
+ document content if the format has been changed (arising from
+ discussion about http://www.zope.org/Collectors/CMF/214)
+ - DirectoryViews/FSMetadata: Corrected some erroneous docstrings
+ about proxy role handling using .metadata files
+ - CMFCore.FSPropertiesObject: Added a deprecation warning to announce the
+ fact that .properties files will disappear in CMF 1.7 and should be
+ replaced with CMFCore.FSMetadata (.metadata) files.
+CMF 1.5.0 (2004/10/21)
+ New Features
+ - Portal: Added 'default_charset' property.
+ - CMFDefault utils: Added 'toUnicode' function.
+ Bug Fixes
+ - ZPT skin: Fixed 'RSS'.
+ Values are now converted to unicode, using 'default_charset'.
+ - DublinCore: Added 'setCreators' method. Note that
+ 'notifyModified' also modifies creators. If the current user
+ should not be added to creators, make sure notifyModified() is not
+ called after setCreators(). (http://www.zope.org/Collectors/CMF/61)
+ - ZPT skin: Fixed '*metadata_edit_form'.
+ Setting "Enable Discussion?" to 'Off' was broken.
+ - CMFSetup: Made sure imported values are converted to strings.
+ For now imports and exports work only with 'ascii' encoding.
+ - FSPageTemplate: Don't hide sub-tracebacks in development mode.
+ - TypesTool: Removed again the "add properties from the ZMI" feature.
+ That feature existed only in 1.5.0beta2.
+ - ActionProviderBase: Modified exceptions raised by 'getActionInfo'.
+ Now Unauthorized is raised if at least one Action was found but
+ the user is not allowed to access any of them.
+ - RegistrationTool: Generated passwords no longer contain 'OQ0Il1'.
+ - The permalink feature is now turned off by default and may be turned
+ on by setting the boolean property 'enable_permalink' in the cmfs
+ root property sheet through the ZMI. Through the 'get_permalink'
+ script the permanent link of an content object can be asked for.
+ Additionaly the site may be asked if the permalink feature is turned
+ on or not by adding 'isAvailable' instead of an unique id
+ (http://www.example.com/permalink/isAvailable). Returns '1' or '0'.
+ Also removed the badly designed 'tal:on-error' directive in
+CMF 1.5.0beta2 (2004/09/27)
+ New Features
+ - CookieCrumbler: Merged changes from standalone version.
+ Cookies set on an HTTPS connection are now marked as secure, meaning
+ they will not be transmitted over HTTP.
+ - PortalFolder: New 'Folderish' Interface defines the 'content*'
+ - PortalFolder: Improved WebDAV folder listings.
+ Hidden sub-objects like tools are now filtered out. To see all
+ sub-objects, you need the 'Manage portal' permission.
+ - TypesTool: New properties can be added from the ZMI to
+ TypeInformation objects.
+ Bug Fixes
+ - CMFDefault/Document: store / return size of "raw" source text for
+ - ZPT skin: Refactored registered_notify_template.
+ For security reasons, it no longer adds the password to the login URL.
+ - PortalFolder: Fixed '_checkId' policy.
+ In a subfolder, members without 'Manage portal' permission were not
+ able to create content items whose names clashed with content items
+ in the portal root.
+ - CookieCrumbler: Improved 'came_from' URL.
+ Problems in connection with stack manipulation on traversal or usage
+ of 'traverse_subpath' should be fixed now.
+ - PortalFolder: Public 'content*' methods or no longer publishable.
+ This prevents expensive anonymous calls to contentItems(),
+ contentIds() and contentValues() via URLs. They still can be used
+ in TTW code.
+ - ZPT skin: Added missing mail_password_template.
+ - TypeInformation: Simplified Method Aliases API.
+ The new queryMethodID() replaces getMethodPath() and getMethodURL().
+ Aliases for method paths are no longer supported.
+ - FSFile: Allow setting a content_type value using a .metadata file
+ - FSPageTemplate: Refine the XML content type detection so that
+ addtional data such as encoding is preserved
+ - ActionInformation: If a path expression ending in an object that
+ gets called using __render_with_namespace__ (such as DTML objects
+ and Scripts (Python)) is used a KeyError for "here" would be thrown
+ inside PageTemplates.ZRPythonExpr.call_with_ns. call_with_ns
+ expects the namespace to contain "here", which the context coming
+ from CMFCore.Expressions.createExprContext did not provide. Added
+ "here" as an alias pointing to the provided "object"
+ - DiscussionItem: Made sure that the workflow is notified of their
+ - CMFCatalogAware: When pasting a content item, local roles were not
+ changed to reflect the new ownership.
+ - ZPT skin: Added missing RSS script and template.
+ - DirectoryView: Improved createDirectoryView() backwards compatibility.
+ Using platform specific path separators is deprecated.
+ - UniqueIdAnnotation: Fixed manage_after* methods.
+ They didn't work correctly in nested folders.
+ - Workflow: Marked WorkflowMethod alias WorkflowAction as deprecated.
+ - ZPT skin: Improved folder_copy_control and folder_cut_control.
+ They now catch CopyErrors.
+ - DirectoryView: Readded expandpath() for backwards compatibility.
+ Some products still import expandpath from DirectoryView because
+ it was once defined there. Note that importing expandpath from
+ DirectoryView is deprecated and doesn't work with CMF HEAD / 1.6.
+ - RegistrationTool: An optional password can now be passed to
+ registeredNotify() (Issue #277).
+ - Tool icons can now reside in subdirectories (Issue #144).
CMF 1.5.0beta (2004/08/12)
@@ -15,13 +859,13 @@
applications using the CatalogTool.
- CMFCalendar.CalendarTool: Made workflow states configurable TTW.
- Minor featurelet: The "Action Providers" ZMI tab on the portal_actions
tool now links directly to the tools shown
- - CMFCore.utils: Introduced contributorsplitter() utility function
+ - CMFCore.utils: Introduced contributorsplitter() utility function
along the lines of keywordsplitter().
- Actions and Action providers: Further refactoring.
@@ -38,14 +882,14 @@
registering, and storing unique IDs for content (gregweb).
o As an example of how to use unique ids, enhanced CMFDefault.Favorite
- content class, using unique ids to track moved or renamed
+ content class, using unique ids to track moved or renamed
o At the bottom of the page the permanent link to the content object
- is shown (http://www.example.com/<cmf_root>/permalink/1234, where
+ is shown (http://www.example.com/<cmf_root>/permalink/1234, where
1234 is the unique id of the content object)
- - Added __init__ method to the IOpaqueItems.ICallableOpaqueItem
+ - Added __init__ method to the IOpaqueItems.ICallableOpaqueItem
- CookieCrumber now supports logging the authenticated user id to
@@ -56,11 +900,12 @@
- The 'find' tab on the 'portal_skins' tool will now mark the object that
would be returned when using the specified skin
- CMFCore.PortalFolder: Enforce check of "Delete objects" permission
- during cut + paste. (http://zope.org/Collectors/CMF/259)
+ during cut + paste.
N.B. This fix depends on an update to the underlying Zope software,
e.g., Zope 2.7.3 or later. Two new unit tests fail on
@@ -68,41 +913,43 @@
- CMFDefault.MetadataTool: Validation would disallow
vocabulary-constrained metadata elements to be empty
- CMFDefault.DiscussionItem: Replies were not sorted chronologically
- CMFDefault.Image and CMFDefault.File: When copy/pasting Image and File
objects the review state did not revert to "private".
- CMFSetup: Refactored rolemap.
- Converted the roles attribute to role sub-elements. Fixed an acquisition
- bug that caused incomplete exports. Updated default profile.
+ Converted the roles attribute to role sub-elements. Fixed an
+ acquisition bug that caused incomplete exports. Updated default
- CMFWiki: Prevent deprecation notice for the deprecated
CMFWikiPermissions module by replacing its usage in CMFWiki.__init__
with the new permissions module.
- CMFTopic: Change topic_view template to show title and ID (it only
- showed title before; http://zope.org/Collectors/CMF/180)
+ showed title before)
- CMFCore.PortalFolder: Unlike other content, only Managers were able
to create PortalFolders using mkdir in FTP. Fixed by inserting
missing security declaration for PortalFolder.manage_addFolder
- Default text format for NewsItems is now structured-text, just like
- it is for Documents, tuhs removing a spurious difference
+ it is for Documents, tuhs removing a spurious difference.
- CMFCalendar.CalendarTool: (Lost) fix for issues 65 and 159.
- The determination of the date/time range constituting a specific month
+ The determination of the date/time range constituting a specific month
- - CMFDefault.DublinCore: Use the portal_metadata tool's 'getPublisher'
- for the DublinCore 'Publisher' element (thanks to Eric Brown for the
+ - CMFDefault.DublinCore: Use the portal_metadata tool's 'getPublisher'
+ for the DublinCore 'Publisher' element (thanks to Eric Brown for the
- CMFCalendar.CalendarTool: Code assumed US datetime format throughout.
@@ -110,20 +957,21 @@
- CMFCalendar.Event: Day, month, and year were processed in the wrong
order by Event.edit().
- CMFCore.PortalFolder: _verifyObjectPaste() did not check the
container's allowed content types, enabling users to paste objects
they were not allowed to add.
- CMFDefault.File and CMFDefault.Image: setFormat() failed to update
the content_type property causing index_html() to use a stale mimetype
when serving the file or image.
- - CMFDefault.Document, CMFDefault.Link, and CMFCalendar.Event:
- WebDAV PUT() caused improper splitting of 'Contributors' metadata header.
+ - CMFDefault.Document, CMFDefault.Link, and CMFCalendar.Event:
+ WebDAV PUT() caused improper splitting of 'Contributors' metadata
- CMFCore.PortalFolder: Fixed missing import of BadRequest exception.
@@ -134,8 +982,9 @@
- ActionInformation: Some attribute cleanup.
- Enforced usage of 'Title' instead of 'Name', 'URL' or 'URL (Expression)'
- instead of 'Action'. Enforced boolean type of 'Visible'.
+ Enforced usage of 'Title' instead of 'Name', 'URL' or
+ 'URL (Expression)' instead of 'Action'. Enforced boolean type of
- DiscussionTool: Fixed two acquisition bugs.
(Collector #119 and #201)
@@ -176,10 +1025,11 @@
- Topic objects now support syndication (Collector #203).
- - PortalFolder and zpt skin: PortalFolder now inherits from OrderedFolder.
+ - PortalFolder and zpt skin: PortalFolder now inherits from
- o Added buttons to 'folder_contents' that allow to set a default sorting
- for each PortalFolder or to order the sub-objects by hand.
+ o Added buttons to 'folder_contents' that allow to set a default
+ sorting for each PortalFolder or to order the sub-objects by hand.
o Modified 'index_html' to show sub-objects in the selected order. The
old 'index_html' is still available as 'index_html_categorized'.
@@ -198,21 +1048,24 @@
- DynamicType: Added 'getActionInfo' method.
This is a shortcut to getActionInfo() of the related TypeInformation.
- - DublinCore: setModificationDate is now guarded by 'ModifyPortalContent'.
+ - DublinCore: setModificationDate is now guarded by
- zpt skin: Reimplemented 'folder_contents' and related controllers.
- Uses a dispatcher script that calls the right validators and controllers
- if a form button is pushed. The result looks almost the same as before.
+ Uses a dispatcher script that calls the right validators and
+ controllers if a form button is pushed. The result looks almost
+ the same as before.
- PortalFolder and SkinnedFolder: Added 'new' and 'rename_items' Actions.
Used for redirects they are invisible by default.
- CMFCore exceptions: Added some Exceptions.
- AccessControl.Unauthorized is a subclass of zExceptions.Unauthorized, so
- for best results use 'AccessControl_Unauthorized' to raise Unauthorized
- and 'zExceptions_Unauthorized' to catch them all. 'CopyError' and
- 'ResourceLockedError' are now also available for TTW code.
- 'EditingConflict' is a new CMF class replacing the old string exception.
+ AccessControl.Unauthorized is a subclass of zExceptions.Unauthorized,
+ so for best results use 'AccessControl_Unauthorized' to raise
+ Unauthorized and 'zExceptions_Unauthorized' to catch them all.
+ 'CopyError' and 'ResourceLockedError' are now also available for
+ TTW code. 'EditingConflict' is a new CMF class replacing the old
+ string exception.
- Callable Opaque Items, CMFCatalogAware: Added an interface
'ICallableOpaqueItemWithHooks'. CMF now calls the manage_after*
@@ -308,8 +1161,8 @@
o deleteLocalRoles() now has a 'recursive' argument.
- o deleteMembers() deletes members including member data, member area and
- Local Roles.
+ o deleteMembers() deletes members including member data, member area
+ and Local Roles.
- CMFCore MembershipTool: Changed interface.
@@ -326,13 +1179,14 @@
available for import by Scripts.
- CMFCore and CMFDefault MembershipTool: Changed permissions.
- 'createMemberarea()' for someone else and 'getRoster()' including hidden
- members are now protected by 'Manage users'. 'getMemberById()',
+ 'createMemberarea()' for someone else and 'getRoster()' including
+ hidden members are now protected by 'Manage users'. 'getMemberById()',
listMemberIds() and listMembers() as well.
- Document and NewsItem: Un-hardwired 'manage_FTPget()' for 'text/html'.
- Added 'source_html.dtml' and 'source_html.pt'. 'manage_FTPget()' now has
- a 'gethtml' hook and uses 'source_html' by default. (Collector #168)
+ Added 'source_html.dtml' and 'source_html.pt'. 'manage_FTPget()' now
+ has a 'gethtml' hook and uses 'source_html' by default.
+ (Collector #168)
- TypeInformation: Added Method Aliases.
@@ -341,7 +1195,8 @@
o factory_type_information now has a key 'aliases' to configure Method
Aliases in a product. This key is required, but may be empty: If it
- doesn't exist, TypeInformation will try to update by guessing aliases.
+ doesn't exist, TypeInformation will try to update by guessing
o DynamicType manipulates 'TraversalRequestNameStack' depending on
Method Aliases. '(Default)' and 'view' aliases bypass __call__() and
@@ -378,8 +1233,8 @@
- CatalogTool: Marked the 'meta_type' index as deprecated.
- PortalFolder: Marked the 'spec' argument as deprecated.
- Use the 'filter' argument with 'portal_type' instead for contentItems(),
- contentIds(), contentValues() and listFolderContents().
+ Use the 'filter' argument with 'portal_type' instead for
+ contentItems(), contentIds(), contentValues() and listFolderContents().
- PortalFolder: Fixed portal_type acquisition bug in ContentFilter.
@@ -441,8 +1296,8 @@
- Skin scripts: Made except statements safer by being more specific. Hope
this still catches all relevant errors.
- - Removed some pre 'Zope 2.4.3 with PageTemplates' backwards compatibility
- cruft. A later platform is required since CMF 1.3.
+ - Removed some pre 'Zope 2.4.3 with PageTemplates' backwards
+ compatibility cruft. A later platform is required since CMF 1.3.
- Collector #153: CookieCrumbler didn't preserve query strings.
More information about the CMF-checkins