[CMF-checkins] CVS: CMF - CHANGES.txt:1.249 HISTORY.txt:1.39
Tres Seaver
tseaver at zope.com
Thu Aug 12 18:46:56 EDT 2004
Update of /cvs-repository/CMF
In directory cvs.zope.org:/tmp/cvs-serv28120
Modified Files:
CHANGES.txt HISTORY.txt
Log Message:
- Clean up head after 1.5 branch.
=== CMF/CHANGES.txt 1.248 => 1.249 ===
--- CMF/CHANGES.txt:1.248 Thu Aug 12 18:31:02 2004
+++ CMF/CHANGES.txt Thu Aug 12 18:46:25 2004
@@ -1,447 +1,9 @@
-CMF 1.5.0beta (2004/08/12)
+After 1.5.0beta
New Features
- - The CMF is now under the terms of version 2.1 of the Zope Public
- License (ZPL); it was previously under ZPL version 2.0.
+ - Feature
- - TypeInfos: Marked getActionById as deprecated.
- Use getActionInfo if you need an URL or getMethodPath if you need a
- method.
+ Bugs Fixed
- - CatalogTool.CatalogTool now has a private 'unrestrictedSearchResults'
- method bypassing the effective and expiry date and roles. The new
- method has to be used with care to not expose security holes in
- applications using the CatalogTool.
-
- - CMFCalendar.CalendarTool: Made workflow states configurable TTW.
- (http://zope.org/Collectors/CMF/110)
-
- - Minor featurelet: The "Action Providers" ZMI tab on the portal_actions
- tool now links directly to the tools shown
- (http://zope.org/Collectors/CMF/181)
-
- - CMFCore.utils: Introduced contributorsplitter() utility function
- along the lines of keywordsplitter().
-
- - Actions and Action providers: Further refactoring.
-
- o Removed again OldstyleActionProvider Interface and
- OldstyleActionProviderBase that existed only in 1.5.0-alpha.
- ActionProvider now also works with oldstyle Action mappings.
-
- o listActionInfos() and getActionInfo() now return ActionInfo objects
- instead of Action info mappings. ActionInfo objects have a backwards
- compatible mapping interface.
-
- - Added CMFUid product which provides tools for generating,
- 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 items.
-
- 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
- 1234 is the unique id of the content object)
-
- - Added __init__ method to the IOpaqueItems.ICallableOpaqueItem
- interface.
-
- - CookieCrumber now supports logging the authenticated user id to
- the access log just like basic auth.
-
- - 'portal_setup' tool can now disply / download diffs between profiles
- and / or snapshots.
-
- - The 'find' tab on the 'portal_skins' tool will now mark the object that
- would be returned when using the specified skin
-
- Bug Fixes
-
- - CMFCore.PortalFolder: Enforce check of "Delete objects" permission
- during cut + paste. (http://zope.org/Collectors/CMF/259)
-
- 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
- Zope 2.7.2 and earlier.
-
- - CMFDefault.MetadataTool: Validation would disallow
- vocabulary-constrained metadata elements to be empty
- (http://zope.org/Collectors/CMF/217)
-
- - CMFDefault.DiscussionItem: Replies were not sorted chronologically
- (http://zope.org/Collectors/CMF/211)
-
- - CMFDefault.Image and CMFDefault.File: When copy/pasting Image and File
- objects the review state did not revert to "private".
- (http://zope.org/Collectors/CMF/176)
-
- - CMFSetup: Refactored rolemap.
- Converted the roles attribute to role sub-elements. Fixed an acquisition
- bug that caused incomplete exports. Updated default profile.
-
- - 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)
-
- - 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
- (http://zope.org/Collectors/CMF/167)
-
- - Default text format for NewsItems is now structured-text, just like
- it is for Documents, tuhs removing a spurious difference
- (http://zope.org/Collectors/CMF/138).
-
- - CMFCalendar.CalendarTool: (Lost) fix for issues 65 and 159.
- The determination of the date/time range constituting a specific month
- was faulty.
-
- - CMFDefault.DublinCore: Use the portal_metadata tool's 'getPublisher'
- for the DublinCore 'Publisher' element (thanks to Eric Brown for the
- patch).
-
- - CMFCalendar.CalendarTool: Code assumed US datetime format throughout.
- At least since Zope 2.7 users can change that.
-
- - CMFCalendar.Event: Day, month, and year were processed in the wrong
- order by Event.edit().
- (http://zope.org/Collectors/CMF/202)
-
- - CMFCore.PortalFolder: _verifyObjectPaste() did not check the
- container's allowed content types, enabling users to paste objects
- they were not allowed to add.
- (http://zope.org/Collectors/CMF/216)
-
- - 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.
- (http://zope.org/Collectors/CMF/226)
-
- - CMFDefault.Document, CMFDefault.Link, and CMFCalendar.Event:
- WebDAV PUT() caused improper splitting of 'Contributors' metadata header.
-
- - CMFCore.PortalFolder: Fixed missing import of BadRequest exception.
-
- - DCWorkflow DefaultWorkflowClassic: Fixed 'pending' state permissions.
-
- - CMFSetup: Refactored actions, type-infos and workflow definition.
- Changed some XML attributes. Converted list items and descriptions to
- sub-elements.
-
- - ActionInformation: Some attribute cleanup.
- Enforced usage of 'Title' instead of 'Name', 'URL' or 'URL (Expression)'
- instead of 'Action'. Enforced boolean type of 'Visible'.
-
- - DiscussionTool: Fixed two acquisition bugs.
- (Collector #119 and #201)
-
- - Change default CookieCrumbler Cache-Control header value from
- "no-cache" to "private" to allow browser caches to cache cookie
- authenticated pages but not proxies and HTTP accellerators.
-
- - ActionInformation: Correctly store an empty tuple for permissions
- if no permission is given (Collector #242).
-
- - DublinCore: Use a default ceiling date that is parsable by
- DateIndex (Collector #132).
-
- - RSS: Creates correct XML by always quoting arguments (Collector #170).
-
-CMF 1.5.0alpha (2004/07/09)
-
- New Features
-
- - CMFActionIcons product is now shipped as part of the CMF release.
-
- - New portal_setup tool provides export / import of various site
- configuration choices, both as tarballs and as TTW "snapshots".
- See the "README":CMFSetup/README.txt.
-
- - zpt skin: Some forms are now scripts.
- These scripts are dispatchers that call validators and controllers and
- set redirect depending on the selected button. If redirect is not set,
- the script calls a template and returns the resulting HTML page.
-
- - ActionProviderBase, ActionInformation: Added methods to modify/edit
- actions. New method 'getActionObject' in 'ActionProviderBase' and
- 'edit' method in 'ActionInformation' (Collector 195).
- An action now may be modified/edited the following way::
-
- action_provider.getActionObject('object/view').edit(title='VIEW')
-
- - Topic objects now support syndication (Collector #203).
-
- - PortalFolder and zpt skin: PortalFolder now inherits from OrderedFolder.
-
- 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'.
-
- - CMFDefault utils: Added 'html_marshal' function.
- This is similar to ZTUtils.make_hidden_input(), but returns a sequence
- of (name, value) pairs instead of html code.
-
- - CMFCore utils and content types: Marked _getViewFor as deprecated.
- __call__() and view() methods using _getViewFor() are deprecated as
- well. Use Method Aliases instead.
-
- - CMFDefault Site: Now adds the 'Classic' DCWorkflow on creation.
- If DCWorkflow is not installed, no default workflow is added.
-
- - DynamicType: Added 'getActionInfo' method.
- This is a shortcut to getActionInfo() of the related TypeInformation.
-
- - DublinCore: setModificationDate is now guarded by 'ModifyPortalContent'.
-
- - 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.
-
- - 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.
-
- - Callable Opaque Items, CMFCatalogAware: Added an interface
- 'ICallableOpaqueItemWithHooks'. CMF now calls the manage_after*
- and manage_before* hooks of a marked opaque item on copying,
- moving or deleting the containing content object.
-
- - DublinCore: Creator element no longer depends on Ownership.
- (Collector #25)
-
- o Added listCreators() and listContributors() to the DublinCore
- Interface. Creator() now returns the first element of listCreators().
- Contributors() is now a deprecated alias of listContributors() and
- might change in a future version.
-
- o Updated DublinCore implementation in DefaultDublinCoreImpl and
- DiscussionItem. Added new addCreator() method that is called by
- notifyModified(). SkinnedFolder also uses the new methods.
-
- o Updated ContentFilter to work with listCreators().
-
- o Updated CatalogTool to index listCreators. Creator index and metadata
- are deprecated and might be removed in a future version.
-
- o Updated skins to search listCreators() and show all creators.
-
- - TypeInfos: _finishConstruction() now calls reindexObject().
- This makes sure changes made by ScriptableTypeInformation scripts are
- indexed and notifyModified() is called after content creation.
-
- - Document: Removed WorkflowMethod wrapper of setFormat().
- This was the only wrapped MutableDublinCore method and caused an ugly
- second reindexObject() / notifyModified() call in the middle of
- _editMetadata().
-
- - CatalogTool: Updated to post Zope 2.6.2 ZCatalog interface.
- 'catalog_object()' and 'reindexObject()' now support the new
- 'update_metadata' argument. 'reindexObjectSecurity()' doesn't update
- catalog metadata anymore.
-
- - Added new hook to CookieCrumbler "twiddleAuthCookie". The
- twiddleAuthCookie skin script, if present is called on each request
- where a cookie authentication token is present. It is passed the auth
- cookie name and value so that it can perform such functions as
- extending the expiration of the cookie. A twiddleAuthCookie script
- along with a setAuthCookie script could create login sessions that
- timeout after a period of inactivity for example.
-
- - Refactored ActionsTool and Action providers:
-
- o Added listActionInfos() and getActionInfo() to the ActionProvider
- Interface, added 'object' argument to listActions().
-
- o Added OldstyleActionProvider Interface and OldstyleActionProviderBase
- for Action providers still not using ActionInformation objects.
- WorkflowTool and CMFCore DiscussionTool use this.
-
- o Action providers queried by ActionsTool should implement the new
- ActionProvider Interface. Action providers subclassing
- ActionProviderBase inherit the necessary methods.
-
- o To ease transition it will be sufficient to implement the
- OldstyleActionProvider Interface, using OldstyleActionProviderBase.
- The use of Action providers not implementing one of these Interfaces
- is deprecated. Support for them will be removed after CMF 1.5.
-
- o Added helper methods getOAI() and getExprContext() to get computed
- contexts from REQUEST cache or create new ones.
-
- - CMFDefault MembershipTool and zpt skin: Added 'Manage members' Action.
- The skin now provides basic membership management: Browsing members,
- registering new members and deleting members including their member
- data, member area and Local Roles.
-
- - The caching policy manager now sets the header
- 'X-Cache-Headers-Set-By' when it sets cache headers
- in a response.
-
- - FSDTMLMethods now play nicely with the caching policy manager.
-
- - zpt skin: Added batch_widgets.pt and getBatchNavigation.py.
- roster and search use now the new navigation macro. Looks like before,
- but i18n works better and it's easier to reuse or replace the code.
-
- - zpt skin: Added zpt version of registered_notify_template.
-
- - CMFCorePermissions: Made them available for import by Scripts.
-
- - CMFCore MembershipTool and MemberDataTool: Added 'delete' methods.
-
- o deleteMemberData() deletes the member data of a member.
-
- o deleteMemberArea() deletes the member area of a member.
-
- o deleteLocalRoles() now has a 'recursive' argument.
-
- o deleteMembers() deletes members including member data, member area and
- Local Roles.
-
- - CMFCore MembershipTool: Changed interface.
-
- o createMemberarea() is now called createMemberArea(). For backwards
- compatibility createMemberarea is a deprecated alias.
-
- o getMembersFolder() is now also part of the CMFCore interface.
-
- - CMFCorePermissions: Added 'Change local roles' Permission.
- PortalFolder's 'Local Roles' Action and MembershipTool's Local Roles
- methods are now guarded by 'Change local roles' of the object.
-
- - Added CMFCore 'exceptions.py': Errors defined in this module are
- 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()',
- 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)
-
- - TypeInformation: Added Method Aliases.
-
- o TypesTool and TypeInformation now have an 'Aliases' tab to configure
- Method Aliases TTW.
-
- 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.
-
- o DynamicType manipulates 'TraversalRequestNameStack' depending on
- Method Aliases. '(Default)' and 'view' aliases bypass __call__() and
- view() methods on traversal.
-
- o PortalFolder's 'mkdir' hook now makes use of Method Aliases.
-
- - CMFCore and CMFDefault MembershipTool: Changed member area creation.
- 'wrapUser()' does no longer call 'createMemberarea()'.
- 'createMemberarea()' should now be called from the 'logged_in' page.
-
- - CMFDefault MembershipTool: Added a customization hook to
- 'createMemberarea()'. A 'createMemberContent' script placed inside the
- tool overrides default member content creation.
-
- Bug Fixes
-
- - zpt skin: Removed dependency on dtml layers.
-
- - CMFCore utils: Marked 'format_stx' function as deprecated.
- It's no longer necessary to work around default STX handling.
-
- - DirectoryView: Refactored path handling.
- Should now work with any products path setup. (Collector #210)
-
- - Enforced new "local permissions" pattern: each top-level CMF product
- should have a 'permissions.py' module which imports / declares all
- permissions used within the product; other modules within the product
- should import from there. Likewise for 'exceptions.py'.
-
- - Removed pre Zope 2.7.0 compatibility code. Now Zope 2.7.0 or a later
- platform is required for CMF.
-
- - 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().
-
- - PortalFolder: Fixed portal_type acquisition bug in ContentFilter.
-
- - DynamicType: Added 'getPortalTypeName()' to the interface.
-
- - Collector #227: expose ZPT filename in tracebacks which include
- FSPageTemplates.
-
- - zpt skin: Switched base tag policy back to that of dtml skin.
- This makes the use of relative URLs in content easier. If you have
- content that depends on the old policy you can customize getBaseTag.pt
- and add a slash. (Collector #66)
-
- - Actions of folderish types: Fixed some inconsistencies.
- Whatever the old CMFDefault policy was - this is the current policy:
- "object" is used for Actions related to the object itself, "folder" is
- used for Actions related to the container of the object.
-
- o Changed the category of PortalFolder and SkinnedFolder Actions to
- 'object'.
-
- o Moved 'folderContents' of folderish types from ActionsTool to
- PortalFolder's type info. Other folderish types now have to declare
- their own 'folderContents' Action if they need one.
-
- o Renamed Topic's 'subtopics' and SkinnedFolder's 'foldercontents'
- Action to 'folderContents' to get them in sync.
-
- - StrippingParser: Added 'big', 'small', 'sub' and 'sup' to valid tags.
-
- - _checkPermission: Added check for executable owner and proxy roles.
-
- - SkinsContainer: Fixed context wrappers returned by getSkinByPath().
- The original context of skin folders is now removed. This avoids having
- SkinTool attributes added to the CMFSite root object.
-
- - CatalogTool: Removed deprecated 'id' from default indexes and metadata.
-
- - Skins: Fixed a DateTime related issue in search_form and doFormSearch.
- Added one second to epoch to work around the problem that the timezone
- gets lost if time is 00:00:00.
-
- - CMFCore.PortalFolder: Explicitly declare base interfaces.
-
- - Tests: CachingPolicyManager tests don't fail on Windows anymore.
- (Collector #107)
-
- - SkinsTool: Fixed cookie paths.
- clearSkinCookie() now uses the same cookie path as updateSkinCookie()
- which is now "inside-out" hosting safe.
-
- - DefaultDublinCoreImpl: Changed accessor permissions.
- As defined in the interface accessors are now protected by 'View'.
-
- - CMFDefault utils: Made 'tuplize()' work correctly with string types.
-
- - CMFCore utils: Reverted obsolete workaround in _checkPermission.
-
- - 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.
-
- - Collector #153: CookieCrumbler didn't preserve query strings.
+ - Bug
=== CMF/HISTORY.txt 1.38 => 1.39 ===
--- CMF/HISTORY.txt:1.38 Fri Jul 9 15:26:13 2004
+++ CMF/HISTORY.txt Thu Aug 12 18:46:25 2004
@@ -1,3 +1,536 @@
+CMF 1.5.0beta (2004/08/12)
+
+ New Features
+
+ - The CMF is now under the terms of version 2.1 of the Zope Public
+ License (ZPL); it was previously under ZPL version 2.0.
+
+ - TypeInfos: Marked getActionById as deprecated.
+ Use getActionInfo if you need an URL or getMethodPath if you need a
+ method.
+
+ - CatalogTool.CatalogTool now has a private 'unrestrictedSearchResults'
+ method bypassing the effective and expiry date and roles. The new
+ method has to be used with care to not expose security holes in
+ applications using the CatalogTool.
+
+ - CMFCalendar.CalendarTool: Made workflow states configurable TTW.
+ (http://zope.org/Collectors/CMF/110)
+
+ - Minor featurelet: The "Action Providers" ZMI tab on the portal_actions
+ tool now links directly to the tools shown
+ (http://zope.org/Collectors/CMF/181)
+
+ - CMFCore.utils: Introduced contributorsplitter() utility function
+ along the lines of keywordsplitter().
+
+ - Actions and Action providers: Further refactoring.
+
+ o Removed again OldstyleActionProvider Interface and
+ OldstyleActionProviderBase that existed only in 1.5.0-alpha.
+ ActionProvider now also works with oldstyle Action mappings.
+
+ o listActionInfos() and getActionInfo() now return ActionInfo objects
+ instead of Action info mappings. ActionInfo objects have a backwards
+ compatible mapping interface.
+
+ - Added CMFUid product which provides tools for generating,
+ 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 items.
+
+ 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
+ 1234 is the unique id of the content object)
+
+ - Added __init__ method to the IOpaqueItems.ICallableOpaqueItem
+ interface.
+
+ - CookieCrumber now supports logging the authenticated user id to
+ the access log just like basic auth.
+
+ - 'portal_setup' tool can now disply / download diffs between profiles
+ and / or snapshots.
+
+ - The 'find' tab on the 'portal_skins' tool will now mark the object that
+ would be returned when using the specified skin
+
+ Bug Fixes
+
+ - CMFCore.PortalFolder: Enforce check of "Delete objects" permission
+ during cut + paste. (http://zope.org/Collectors/CMF/259)
+
+ 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
+ Zope 2.7.2 and earlier.
+
+ - CMFDefault.MetadataTool: Validation would disallow
+ vocabulary-constrained metadata elements to be empty
+ (http://zope.org/Collectors/CMF/217)
+
+ - CMFDefault.DiscussionItem: Replies were not sorted chronologically
+ (http://zope.org/Collectors/CMF/211)
+
+ - CMFDefault.Image and CMFDefault.File: When copy/pasting Image and File
+ objects the review state did not revert to "private".
+ (http://zope.org/Collectors/CMF/176)
+
+ - CMFSetup: Refactored rolemap.
+ Converted the roles attribute to role sub-elements. Fixed an acquisition
+ bug that caused incomplete exports. Updated default profile.
+
+ - 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)
+
+ - 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
+ (http://zope.org/Collectors/CMF/167)
+
+ - Default text format for NewsItems is now structured-text, just like
+ it is for Documents, tuhs removing a spurious difference
+ (http://zope.org/Collectors/CMF/138).
+
+ - CMFCalendar.CalendarTool: (Lost) fix for issues 65 and 159.
+ The determination of the date/time range constituting a specific month
+ was faulty.
+
+ - CMFDefault.DublinCore: Use the portal_metadata tool's 'getPublisher'
+ for the DublinCore 'Publisher' element (thanks to Eric Brown for the
+ patch).
+
+ - CMFCalendar.CalendarTool: Code assumed US datetime format throughout.
+ At least since Zope 2.7 users can change that.
+
+ - CMFCalendar.Event: Day, month, and year were processed in the wrong
+ order by Event.edit().
+ (http://zope.org/Collectors/CMF/202)
+
+ - CMFCore.PortalFolder: _verifyObjectPaste() did not check the
+ container's allowed content types, enabling users to paste objects
+ they were not allowed to add.
+ (http://zope.org/Collectors/CMF/216)
+
+ - 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.
+ (http://zope.org/Collectors/CMF/226)
+
+ - CMFDefault.Document, CMFDefault.Link, and CMFCalendar.Event:
+ WebDAV PUT() caused improper splitting of 'Contributors' metadata header.
+
+ - CMFCore.PortalFolder: Fixed missing import of BadRequest exception.
+
+ - DCWorkflow DefaultWorkflowClassic: Fixed 'pending' state permissions.
+
+ - CMFSetup: Refactored actions, type-infos and workflow definition.
+ Changed some XML attributes. Converted list items and descriptions to
+ sub-elements.
+
+ - ActionInformation: Some attribute cleanup.
+ Enforced usage of 'Title' instead of 'Name', 'URL' or 'URL (Expression)'
+ instead of 'Action'. Enforced boolean type of 'Visible'.
+
+ - DiscussionTool: Fixed two acquisition bugs.
+ (Collector #119 and #201)
+
+ - Change default CookieCrumbler Cache-Control header value from
+ "no-cache" to "private" to allow browser caches to cache cookie
+ authenticated pages but not proxies and HTTP accellerators.
+
+ - ActionInformation: Correctly store an empty tuple for permissions
+ if no permission is given (Collector #242).
+
+ - DublinCore: Use a default ceiling date that is parsable by
+ DateIndex (Collector #132).
+
+ - RSS: Creates correct XML by always quoting arguments (Collector #170).
+
+CMF 1.5.0alpha (2004/07/09)
+
+ New Features
+
+ - CMFActionIcons product is now shipped as part of the CMF release.
+
+ - New portal_setup tool provides export / import of various site
+ configuration choices, both as tarballs and as TTW "snapshots".
+ See the "README":CMFSetup/README.txt.
+
+ - zpt skin: Some forms are now scripts.
+ These scripts are dispatchers that call validators and controllers and
+ set redirect depending on the selected button. If redirect is not set,
+ the script calls a template and returns the resulting HTML page.
+
+ - ActionProviderBase, ActionInformation: Added methods to modify/edit
+ actions. New method 'getActionObject' in 'ActionProviderBase' and
+ 'edit' method in 'ActionInformation' (Collector 195).
+ An action now may be modified/edited the following way::
+
+ action_provider.getActionObject('object/view').edit(title='VIEW')
+
+ - Topic objects now support syndication (Collector #203).
+
+ - PortalFolder and zpt skin: PortalFolder now inherits from OrderedFolder.
+
+ 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'.
+
+ - CMFDefault utils: Added 'html_marshal' function.
+ This is similar to ZTUtils.make_hidden_input(), but returns a sequence
+ of (name, value) pairs instead of html code.
+
+ - CMFCore utils and content types: Marked _getViewFor as deprecated.
+ __call__() and view() methods using _getViewFor() are deprecated as
+ well. Use Method Aliases instead.
+
+ - CMFDefault Site: Now adds the 'Classic' DCWorkflow on creation.
+ If DCWorkflow is not installed, no default workflow is added.
+
+ - DynamicType: Added 'getActionInfo' method.
+ This is a shortcut to getActionInfo() of the related TypeInformation.
+
+ - DublinCore: setModificationDate is now guarded by 'ModifyPortalContent'.
+
+ - 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.
+
+ - 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.
+
+ - Callable Opaque Items, CMFCatalogAware: Added an interface
+ 'ICallableOpaqueItemWithHooks'. CMF now calls the manage_after*
+ and manage_before* hooks of a marked opaque item on copying,
+ moving or deleting the containing content object.
+
+ - DublinCore: Creator element no longer depends on Ownership.
+ (Collector #25)
+
+ o Added listCreators() and listContributors() to the DublinCore
+ Interface. Creator() now returns the first element of listCreators().
+ Contributors() is now a deprecated alias of listContributors() and
+ might change in a future version.
+
+ o Updated DublinCore implementation in DefaultDublinCoreImpl and
+ DiscussionItem. Added new addCreator() method that is called by
+ notifyModified(). SkinnedFolder also uses the new methods.
+
+ o Updated ContentFilter to work with listCreators().
+
+ o Updated CatalogTool to index listCreators. Creator index and metadata
+ are deprecated and might be removed in a future version.
+
+ o Updated skins to search listCreators() and show all creators.
+
+ - TypeInfos: _finishConstruction() now calls reindexObject().
+ This makes sure changes made by ScriptableTypeInformation scripts are
+ indexed and notifyModified() is called after content creation.
+
+ - Document: Removed WorkflowMethod wrapper of setFormat().
+ This was the only wrapped MutableDublinCore method and caused an ugly
+ second reindexObject() / notifyModified() call in the middle of
+ _editMetadata().
+
+ - CatalogTool: Updated to post Zope 2.6.2 ZCatalog interface.
+ 'catalog_object()' and 'reindexObject()' now support the new
+ 'update_metadata' argument. 'reindexObjectSecurity()' doesn't update
+ catalog metadata anymore.
+
+ - Added new hook to CookieCrumbler "twiddleAuthCookie". The
+ twiddleAuthCookie skin script, if present is called on each request
+ where a cookie authentication token is present. It is passed the auth
+ cookie name and value so that it can perform such functions as
+ extending the expiration of the cookie. A twiddleAuthCookie script
+ along with a setAuthCookie script could create login sessions that
+ timeout after a period of inactivity for example.
+
+ - Refactored ActionsTool and Action providers:
+
+ o Added listActionInfos() and getActionInfo() to the ActionProvider
+ Interface, added 'object' argument to listActions().
+
+ o Added OldstyleActionProvider Interface and OldstyleActionProviderBase
+ for Action providers still not using ActionInformation objects.
+ WorkflowTool and CMFCore DiscussionTool use this.
+
+ o Action providers queried by ActionsTool should implement the new
+ ActionProvider Interface. Action providers subclassing
+ ActionProviderBase inherit the necessary methods.
+
+ o To ease transition it will be sufficient to implement the
+ OldstyleActionProvider Interface, using OldstyleActionProviderBase.
+ The use of Action providers not implementing one of these Interfaces
+ is deprecated. Support for them will be removed after CMF 1.5.
+
+ o Added helper methods getOAI() and getExprContext() to get computed
+ contexts from REQUEST cache or create new ones.
+
+ - CMFDefault MembershipTool and zpt skin: Added 'Manage members' Action.
+ The skin now provides basic membership management: Browsing members,
+ registering new members and deleting members including their member
+ data, member area and Local Roles.
+
+ - The caching policy manager now sets the header
+ 'X-Cache-Headers-Set-By' when it sets cache headers
+ in a response.
+
+ - FSDTMLMethods now play nicely with the caching policy manager.
+
+ - zpt skin: Added batch_widgets.pt and getBatchNavigation.py.
+ roster and search use now the new navigation macro. Looks like before,
+ but i18n works better and it's easier to reuse or replace the code.
+
+ - zpt skin: Added zpt version of registered_notify_template.
+
+ - CMFCorePermissions: Made them available for import by Scripts.
+
+ - CMFCore MembershipTool and MemberDataTool: Added 'delete' methods.
+
+ o deleteMemberData() deletes the member data of a member.
+
+ o deleteMemberArea() deletes the member area of a member.
+
+ o deleteLocalRoles() now has a 'recursive' argument.
+
+ o deleteMembers() deletes members including member data, member area and
+ Local Roles.
+
+ - CMFCore MembershipTool: Changed interface.
+
+ o createMemberarea() is now called createMemberArea(). For backwards
+ compatibility createMemberarea is a deprecated alias.
+
+ o getMembersFolder() is now also part of the CMFCore interface.
+
+ - CMFCorePermissions: Added 'Change local roles' Permission.
+ PortalFolder's 'Local Roles' Action and MembershipTool's Local Roles
+ methods are now guarded by 'Change local roles' of the object.
+
+ - Added CMFCore 'exceptions.py': Errors defined in this module are
+ 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()',
+ 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)
+
+ - TypeInformation: Added Method Aliases.
+
+ o TypesTool and TypeInformation now have an 'Aliases' tab to configure
+ Method Aliases TTW.
+
+ 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.
+
+ o DynamicType manipulates 'TraversalRequestNameStack' depending on
+ Method Aliases. '(Default)' and 'view' aliases bypass __call__() and
+ view() methods on traversal.
+
+ o PortalFolder's 'mkdir' hook now makes use of Method Aliases.
+
+ - CMFCore and CMFDefault MembershipTool: Changed member area creation.
+ 'wrapUser()' does no longer call 'createMemberarea()'.
+ 'createMemberarea()' should now be called from the 'logged_in' page.
+
+ - CMFDefault MembershipTool: Added a customization hook to
+ 'createMemberarea()'. A 'createMemberContent' script placed inside the
+ tool overrides default member content creation.
+
+ Bug Fixes
+
+ - zpt skin: Removed dependency on dtml layers.
+
+ - CMFCore utils: Marked 'format_stx' function as deprecated.
+ It's no longer necessary to work around default STX handling.
+
+ - DirectoryView: Refactored path handling.
+ Should now work with any products path setup. (Collector #210)
+
+ - Enforced new "local permissions" pattern: each top-level CMF product
+ should have a 'permissions.py' module which imports / declares all
+ permissions used within the product; other modules within the product
+ should import from there. Likewise for 'exceptions.py'.
+
+ - Removed pre Zope 2.7.0 compatibility code. Now Zope 2.7.0 or a later
+ platform is required for CMF.
+
+ - 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().
+
+ - PortalFolder: Fixed portal_type acquisition bug in ContentFilter.
+
+ - DynamicType: Added 'getPortalTypeName()' to the interface.
+
+ - Collector #227: expose ZPT filename in tracebacks which include
+ FSPageTemplates.
+
+ - zpt skin: Switched base tag policy back to that of dtml skin.
+ This makes the use of relative URLs in content easier. If you have
+ content that depends on the old policy you can customize getBaseTag.pt
+ and add a slash. (Collector #66)
+
+ - Actions of folderish types: Fixed some inconsistencies.
+ Whatever the old CMFDefault policy was - this is the current policy:
+ "object" is used for Actions related to the object itself, "folder" is
+ used for Actions related to the container of the object.
+
+ o Changed the category of PortalFolder and SkinnedFolder Actions to
+ 'object'.
+
+ o Moved 'folderContents' of folderish types from ActionsTool to
+ PortalFolder's type info. Other folderish types now have to declare
+ their own 'folderContents' Action if they need one.
+
+ o Renamed Topic's 'subtopics' and SkinnedFolder's 'foldercontents'
+ Action to 'folderContents' to get them in sync.
+
+ - StrippingParser: Added 'big', 'small', 'sub' and 'sup' to valid tags.
+
+ - _checkPermission: Added check for executable owner and proxy roles.
+
+ - SkinsContainer: Fixed context wrappers returned by getSkinByPath().
+ The original context of skin folders is now removed. This avoids having
+ SkinTool attributes added to the CMFSite root object.
+
+ - CatalogTool: Removed deprecated 'id' from default indexes and metadata.
+
+ - Skins: Fixed a DateTime related issue in search_form and doFormSearch.
+ Added one second to epoch to work around the problem that the timezone
+ gets lost if time is 00:00:00.
+
+ - CMFCore.PortalFolder: Explicitly declare base interfaces.
+
+ - Tests: CachingPolicyManager tests don't fail on Windows anymore.
+ (Collector #107)
+
+ - SkinsTool: Fixed cookie paths.
+ clearSkinCookie() now uses the same cookie path as updateSkinCookie()
+ which is now "inside-out" hosting safe.
+
+ - DefaultDublinCoreImpl: Changed accessor permissions.
+ As defined in the interface accessors are now protected by 'View'.
+
+ - CMFDefault utils: Made 'tuplize()' work correctly with string types.
+
+ - CMFCore utils: Reverted obsolete workaround in _checkPermission.
+
+ - 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.
+
+ - Collector #153: CookieCrumbler didn't preserve query strings.
+
+CMF 1.4.7 (2004/08/11)
+
+ New Features
+
+ - Minor featurelet: The "Action Providers" ZMI tab on the portal_actions
+ tool now links directly to the tools shown
+ (http://zope.org/Collectors/CMF/181)
+
+ Bug Fixes
+
+ - CMFCore.PortalFolder: Enforce check of "Delete objects" permission
+ during cut + paste. (http://zope.org/Collectors/CMF/259)
+
+ 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
+ Zope 2.7.2 and earlier.
+
+ - CMFDefault.MetadataTool: Validation would disallow
+ vocabulary-constrained metadata elements to be empty
+ (http://zope.org/Collectors/CMF/217)
+
+ - CMFDefault.DiscussionItem: Replies were not sorted chronologically
+ (http://zope.org/Collectors/CMF/211)
+
+ - CMFDefault.Image and CMFDefault.File: When copy/pasting Image and File
+ objects the review state did not revert to "private".
+ (http://zope.org/Collectors/CMF/176)
+
+ - CMFTopic: Change topic_view template to show title and ID (it only
+ showed title before; http://zope.org/Collectors/CMF/180)
+
+ - 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
+ (http://zope.org/Collectors/CMF/167)
+
+ - Default text format for NewsItems is now structured-text, just like
+ it is for Documents, thus removing a spurious difference
+ (http://zope.org/Collectors/CMF/138).
+
+ - CMFCalendar.CalendarTool: (Lost) fix for issues 65 and 159.
+ The determination of the date/time range constituting a specific month
+ was faulty.
+
+ - CMFDefault.DublinCore: Use the portal_metadata tool's 'getPublisher'
+ for the DublinCore 'Publisher' element (thanks to Eric Brown for the
+ patch).
+
+ - CMFDefault.Document: Make Document render compliant XHTML when format
+ is 'plain' (thanks to Eric Brown for the patch).
+
+CMF 1.4.6 (2004/07/30)
+
+ Bug Fixes
+
+ - CMFCalendar.Event: Fixed long-standing bug where day, month, and year
+ were processed in the wrong order by Event.edit().
+ (http://zope.org/Collectors/CMF/202)
+
+ - CMFCalendar.Event: PUT() caused improper splitting of 'Contributors'
+ metadata header.
+
+ - CMFCalendar.CalendarTool: Code assumed US datetime format throughout.
+ At least since Zope 2.7 users can change that.
+ (http://plone.org/collector/3218)
+
+ - CMFCore.PortalFolder: _verifyObjectPaste() did not check the
+ container's allowed content types, enabling users to paste objects
+ they were not allowed to add.
+ (http://plone.org/collector/2183)
+
+ - CMFDefault.File and CMFDefault.Image: setFormat() failed to update
+ the content_type property causing a stale mimetype to be used when
+ serving the file or image.
+ (http://plone.org/collector/1323)
+
+ - CMFDefault.Document and CMFDefault.Link: PUT() caused improper
+ splitting of 'Contributors' metadata header.
+ (http://plone.org/collector/3217)
+
+ - CMFCore.utils: Introduced contributorsplitter() utility function.
+
+ - CMFCore.PortalFolder: checkIdAvailable() failed to catch
+ zExceptions.BadRequest.
+
CMF 1.4.5 (2004/07/08)
Bug Fixes
More information about the CMF-checkins
mailing list