[CMF-checkins] CVS: Releases/CMF - CHANGES.txt:1.9 HISTORY.txt:1.30
Tres Seaver
tseaver@zope.com
Fri, 21 Sep 2001 23:25:34 -0400
Update of /cvs-repository/Releases/CMF
In directory cvs.zope.org:/tmp/cvs-serv11049
Modified Files:
CHANGES.txt HISTORY.txt
Log Message:
- Catch up on changelog.
=== Releases/CMF/CHANGES.txt 1.8 => 1.9 ===
+1.2 alpha
New features
- - Landed "skinned folder" module, which permits creation of
- "folderish" types with customized replacements for 'index_html'.
+ - (__future__) Fleshed out CMFDecor product, which adds Zope
+ Page Templates skins to the CMFSite and content objects of
+ CMFDefault; added CMFDecor to the core set of CMF products.
- - Added 'run_all_tests' script, to simplify running all unit
- tests for CMF-related products.
+ Note that the CMFDecor skin is the one which will be
+ receiving all our development focus: we will fix bugs in the
+ DTML skins, but are not likely to invest significant effort
+ in upgrading it.
- - Factored out index and column lists, to ease customization
- (Tracker #289)
+ - (__future__) Added DCWorkflow (through-the-web configurable
+ workflows) to the core set of CMF products.
- - Modified DefaultDublinCoreImpl#setContributors() to use new
- tuplize functionality (the ability to pass in a different
- splitter function). If a string is passed in to
- setContributors(), it gets split on semicolons. This allows
- setting of contributor strings to be like
-
- "Doe, John E (john@doe.a.deer); The Mertz Family Foundation; PBS"
-
- If one so deeply and dearly desired. (The above would turn
- into a three element tuple).
-
- - Made it possible to map "normal" Zope objects as content
- (Tracker #283):
-
- o Skin and tool code which used to query the object
- for its Type in order to then ask the types tool for a
- TypeInfo object now just asks the types tool for type
- TypeInfo object directly.
-
- o Modified the TypesTool interface to signal that passing an
- object to 'getTypeInfo' is acceptable, with the semantic
- that the tool will attempt to find a TypeInfo object based
- on the tool's type or metatype.
-
- - Expanded signature of Document.CookedBody to change the
- header levels Structured Text starts rendering at, and
- whether to preserve those changes, following the following
- logic:
-
- If the format is html, and 'stx_level' is not passed in or
- is the same as the object's current settings, return the
- cached cooked text. Otherwise, recook. If we recook and
- 'setlevel' is true, then set the recooked text and
- stx_level on the object.
+ - Add ZMI tab to DirectoryView to allow re-basing the
+ filesystem path.
- Bug fixes
-
- - Hardened DirectoryView against objects which raise exceptions
- during initial reads (typically due to permission problems);
- these objects now capture and log the exception, and create
- a BadFile object which allows browsing the traceback via the
- ZMI (Tracker #317).
-
- - Stopped polluting the browser with persistent skin cookie;
- clear it as well on logout (Tracker #304).
-
- - Cleaned up folder content filtering (Tracker #298, thanks
- to Chris Withers for the patch).
-
- - Implement new "List folder contents" permission (Tracker
- #320), to prevent non-privileged users from being able to
- browse 'folder_contents' (permission is by default mapped
- to 'Owner' and 'Manager').
-
- Note that this is really only a UI change:
- 'PortalFolder.contentIds', 'PortalFolder.contentValues', and
- 'PortalFolder.contentItems' are still public, to allow for
- reasonable "site map" views on folders.
-
- - Use saner type ID listing in 'search_form' (Tracker #324).
-
- - Rewired "POST target" skin methods, replacing filesystem-based
- DTML Methods with filesystem-based Python Scripts (from
- Tracker #301 -- thanks to Chris Withers).
+ - Added "breadcrumbs" to CMFDecor skins.
- - Implemented *LARGE* patch to CMFDefault.DiscussionItem and
- CMFDefault.DiscussionTool, plus removal of
- CMFDefault.Discussions: changed threading strategy to remove
- dependency on the path of the "host" content object. Includes
- an ExternalMethod, CMFDefault/Extensions/update_discussion.py,
- which must be run to convert existing content which contains
- discussion.
+ - Added initial support for WebDAV locaking to PortalContent.
- - Overrode DublinCore's isEffective in CMFCalendar.Event to
- always return true; this change prevents blocking view of
- the event by standard_html_header.
+ - Added SortCriterion to list of criterion types for Topics,
+ to permit sorting of results.
- - Updated INSTALL.txt to note that:
+ - Add scarecrow assertions for the CMF-centric interfaces, and
+ made the actual interfaces compatible with the standard
+ Zope Interface package.
- o Use with Zope 2.4.0a1 is *not* recommended.
+ - Made FSSTXMethod display skinnable, and added ZPT version.
- o CMFDecor requires Zope Page Templates (Tracker #291).
+ - Added 'visible' attribute to TypeInformation actions, to
+ permit indirection (via 'getActionById') without exposing the
+ action in the CMF UI.
- and to describe upgrade process from CMF 1.0.
+ - Extendd MetadataTool to allow adding / removing element specs
+ (i.e., it can now manage policies for "custom" schemas, as
+ well as Dublin Core).
- - Fixed typo in 'Unauthorized' exception raised by
- 'PortalContent._getDefaultView'.
-
- - Made all content types findable by catalog (Tracker #286).
-
- - Ensured that ContentTypeRegistry's "Test" tab doesn't puke if
- no MIMEtype is entered, or if one is entered which doesn't
- have a '/' in it (Tracker #292).
-
- - Suppressed overwrite of Subject when no 'Subject' or
- 'Keywords' headers were present (Tracker #294).
-
- - Ensured that 'Type' is indexed in newly-created
- 'portal_catalog'.
-
- - Fixed acquisition stripping in PortalContent.objectItems().
-
- - Modified CMFDefault.DublinCore.getMetadataHeaders() to join
- Subject by commas, instead of spaces. Since we parse/split
- Subject on commas or semicolons now when a document is saved
- by FTP or WebDAV, we need to feed it out in the same format.
+ Bug fixes
- - Fleshed out security declarations for 'portal_metadata' tool.
+ - Made Topic directly publishable (like PortalContent), using its
+ 'view' action (or the first action found, if view is not present).
- - Corrected pathname of 'MemberDataTool.memberdataContents' to
- account for use of '_dtmldir' (thanks to Ricardo Newbery for
- the patch!).
+ - Set title for newly-created member folders; fixes
+ breadcrumbs that expect a title on the object.
- - Fixed buglet resulting from uninitialized local in
- 'PortalContent.objectItems' (thanks to Seb Bacon for the
- patch).
+ - Allow URLs with query strings in StructuredText links.
- - Modified stock 'search_form' to query 'Type' rather than
+ - Update 'news_box' to search based on 'Type', rather than
'meta_type'.
- - Removed debugging / "paranoia" print statements (thanks to
- Chris Withers for the patches).
-
-1.1 beta (2001/06/01)
-
- New features
-
- - Added CMFCore.utils.keywordsplitter to construct 'Subject'
- dublin core header from both 'Keywords' and 'Subject' headers
- passed in (meta tags/rfc822).
-
- - CMF Document now uses StructuredTextNG for structured text
- handling. Nicely enough, it uses the "with images" features, and
- also enables named and inner links.
-
- - CMF Document exposes two new accessor methods for getting at the
- "cooked" and editable body, 'CookedBody()', and 'EditableBody()'.
- Using the 'cooked_text' and 'text' instance attributes should be
- considered deprecated.
-
- - Added new "exemplar" content product, CMFCalendar, which
- (for now) adds a simple content object, Event. This product
- serves a similar didactic purpose as CMFTopic (which is now
- "in the core"): it shows how to build new content types as
- filesystem products.
-
- - Implemented improved "safety belt" for concurrent Document
- editing. See the dogbowl proposal,
- http://cmf.zope.org/rqmts/proposals/ContentSafetyBelt
-
- - Added new filesystem-based skin method type, FSSTXMethod, for
- creating "methods" which render STX.
-
- - Exposed "controlled vocabulary" for Subject in
- 'metadata_edit_form'.
-
- - Gave 'portal_skins' tool its own PUT_factory (Tracker #238).
- Allows site builder to create skin methods via WebDAV/FTP,
- including ZPT, PythonScripts, etc.
-
- - Implemented "outbound" segment of the "Syndication tool"
- proposal, q.v.,
- http://cmf.zope.org/CMF/Members/andrew/folderRSS
-
- - Made 'PUT_factory' use new 'content_type_registry' tool.
-
- - Made 'PUT_factory' use 'invokeFactory', so that objects
- created via PUT have their 'portal_type' set properly.
-
- - Added ContentTypeRegistry class and related predicates for
- mapping PUT requests (name,content_type,body) to type object
- names.
-
- - Allowed Reviewers to "retract" published content owned by
- others.
-
- - Added "Overview" ZMI view to tools.
-
- - Added "Dublin Core" ZMI view to PortalContent; added an
- editing view for Document and derivatives.
-
- - Added "drop-in" workflow objects to the WorkflowTool,
- including the ability to map workflows onto content types.
-
- - Changed CMFDefault.Portal to install CMF Topic by default
- when building a new CMF Site.
-
- - Added a new criteria type, *FriendlyDateCriterion*, to
- CMFTopic for building queries like 'When effective_date is
- less than five days old'.
-
- - Implemented 'portal_metadata' tool. See the dogbowl
- proposal,
- http://cmf.zope.org/rqmts/proposals/completed/metadata_tool.
-
- - Extended DirectoryView objects to reload when the directory
- they represent has changed, if Zope is running in debug mode.
-
- - Added hooks to CookieCrumbler to permit site managers to
- customize seting/expiring of the authentication cookie by
- adding PythonScripts; two default filesystem implementations
- are in CMFDefault's "control" skin.
-
- - Extended TypesTool to deal appropriately with DTML factory
- methods (e.g., for ZClasses).
-
- - Made FSDTMLMethods searchable from the ZMI (Issue PTK(251)[]).
-
- Bug Fixes
-
- - Added 'manage_beforeDelete' to DiscussionItemContainer class,
- and propagated to it from content deletion (Tracker #269).
-
- - Only display the "join" action if the user has the "Add
- portal member" permission.
-
- - Check for appropriate REQUEST variables before invoking
- CopySupport machinery, return a nice 'portal_status_message'
- instead of allowing the traceback to kick in (Tracker #247).
-
- - Initialize default DublinCore metadata for the site, so that
- *some* value is available everywhere (Tracker #285).
-
- - Add module-level globals aliases, to permit other products
- to use elements of skins (Tracker #273).
-
- - Replaced 'metadata_edit' DTMLMethod with PythonScript.
-
- - Updated 'metadata_edit' to avoid clearing values not passed
- in REQUEST (Tracker #268).
-
- - Removed spurious whitespace being added to Subject.
-
- - Fixed FSPythonScript to open file in text mode, so that
- Windows verstions with CR don't cause the parser to choke
- (Tracker #284).
-
- - Simplified login-disabling logic in CookieCrumbler.
-
- - Added '<base>' tag to headers of Document, NewsItem, and
- DiscussionItem so that relative links work properly.
-
- - Fixed the ActionsTool to suppress adding a trailing '/' to
- "empty" action URL's.
-
- - Fixed Document's content type sniffing to deal with odd case
- in which "entire" HTML document was embedded as an STX
- example.
-
- - Replaced literal string permissins with "named permissions",
- imported from modules in most places. (Please report any
- which escaped!)
-
- - Moved 'factory_type_information' registry entries back out
- to the relevant modules (instead of lumping them in
- CMFDefault.Portal).
-
- - Simplified NewsItem to "Document with a twist" (NewsItems now
- inherit lots of useful behavior from Document.
-
- - Aliased DublinCore's Format() as 'content_type', so that
- Zope's WebDAV support will do the Right Thing (TM) when
- handling a PROPFIND.
-
- - Suppressed "eager redirect" behavior in CookieCrumbler for
- FTP or WebDAV (note that WebDAV fix only works for "extra"
- HTTP methods; GET/PUT/POST still redirect).
-
- - Made sure to update the catalog when a content object's
- parent is deleted / moved (Tracker #261).
-
- - Fixed lossage to File objects when no upload supplied
- (Tracker #271).
-
- - Fixed "Add to Favorites" when applied to Folders.
+ - Fix 'SkinnedFolder.Creator()' to call 'getOwner()' with
+ info argument.
- - Suppressed "Members" link in topbar (pointed to 'roster' method)
- for users who would not be able to see it.
+ - Made CookieCrumbler check for 'WEBDAV_SOURCE_PORT'
+ environment variable (supplied by Zope 2.4.1+), and bail on
+ intercepting authentication if found.
- - Fixed irritating bugs in setting of skin-selection cookie.
+ - Included 'Owner' in list of significant roles returned by
+ 'MembershipTool.getPortalRoles' (e.g., so that the
+ "Local Roles" interface can allow assignment of it).
- - Removed ugly '_mimetype_registry' hack for 'PUT_factory'.
+ - Allow users with local role of "Reviewer" to see the "pending
+ review" action.
- - Fixed a bug in CMFDefault.Document with PUT that only affected
- FTP: when a StructuredText document that contained a full HTML
- example (complete with <html>, <head>, and <body> tags) in its
- body, it would pass the "does it smell like HTML" test and throw
- everything away that wasn't inside the first matching pair of
- <body> tags it found. Funnily enough, this bug was exposed when
- trying to save an article about how to use FTP with Zope and the
- CMF that contained such an example.
+ - Made TypesTool, rather than individual type objects,
+ responsible for generating "immediate view" URL; type
+ objects now return the newly-created object, which makes
+ scripting them much simpler.
- - Fixed glitch caused by '<dtml-return>' in
- CMFDefault/skins/control/reconfig.dtml. Thanks to Hans de Wit
- <hw@scp.nl> for reporting this!
+ - Remove fossilized reference to 'getSecurityManager' from
+ 'PortalContent._verifyActionPermissions'.
- - Allowed 'portal_type' to be a method, as well as an attribute
- (eases ZClass-as-content).
+ - Modified the redirect after "Add to Favorites" to us the
+ view action, rather than 'view'.
- - Fixed search form to pass 'created' instead of 'date' (probably
- need 'modified', too); also, added selection list for 'Subject',
- and fixed the "Last Month" option value.
+ - Fixed 'Document.guessFormat()' to use
+ 'utils.html_headcheck()' instead of 'bodyfinder' regex to
+ detect structured text versus html; avoids recursion limit
+ for large HTML files.
- - Fixed non-import in CMFCore/WorkflowCore.py (Tracker #239,
- thanks to 'snej' for the patch).
+ - Removed spurious 'afterCreate' protocol for content objects.
- - Updated CatalogTool to handle searchable vs. displayable DublinCore
- dates properly.
+ - Added mapping of 'css' file extension to FSDTMLMethods.
- - Replaced usage of .id with .getId() all through the CMF, to
- conform with the new SimpleItem API. Thanks to Jens Quade
- <jq@jquade.de> for pointing this out. (Issue PTK(241)[]).
+ - Modifed PortalFolder.listFolderContents to handle
+ permission-based filtering; duplicates what skip_unauthorized
+ is doing in DocumentTemplate/DT_IN.py (but works for ZPT as
+ well).
- - Extended 'index_html' to render portal description using STX
- (Tracker #246).
+ - Modified CMFDefault.RegistrationTool.addMember to avoid
+ flunking validation if properties are not passed (Tracker
+ #335).
- - Updated CMFDefault skins to use Contentish.getIcon, including
- the portal catalog. This greatly simplifies using ZClasses as
- content. In CMFDefault/scripts you will find
- 'convertCatalogGetIconColumn.pys), a Python Script that will
- convert your existing Catalog to use 'getIcon' instead of
- 'icon' (Issue PTK(244)[]). Also, synched interface definition
- to show the 'relative_to_portal' argument.
+ - Applied patch from Chris Withers to 'register' skin method;
+ the patch which avoids quoting problems for the error message
+ if a problem occurs (Tracker #339).
- - Extended 'folder_factories' to filter type objects using
- 'isConstructionAllowed' in 'PortalFolder.allowedContentTypes'
- (Tracker #249).
+ - Added 'DiscussionItem.replyCount' (Tracker #328).
+ 'DiscussionItem.hasReplies' now returns only a boolean value.
+ Standard skins don't call 'replyCount' due to performance
+ concerns.
- - Fixed display of replies on discussion items.
+ - Factored content filtering logic into a Python Script.
- - Made appropriate use of 'portal_url', instead of BASEPATH
- ad hockery, in skin methods (Tracker #259).
+ - Improved handling of multiple rename targets (thanks to Chris
+ Withers for the patch.)
- - Synched interface definition of 'Contentish.getIcon' with
- reality (documented 'relative' parameter).
+ - Completed conversion of form targets from DTML Methods to
+ Python Scripts.
- - Fixed "Ever" entry in 'search_form' to use a value safe in
- timezones east of GMT (Tracker #236).
+ - Improved compatibility with Zope 2.4:
- - Deprecated the CMFDefault.File.download method; it is still
- available, but is no longer called by the current CMF skin,
- nor is index_html aliased to it.
+ o support for new "restricted execution" mode;
- The method was necessary when the "View' method was the
- default action when calling the URL of the File object, this
- is no longer the case. The setting of the Content-Disposition
- header is not needed when using the absolute URL of the
- object, and causes certain browsers to misbehave.
+ o support for new catalog initialization API.
+
+ o updated 'test_all' unit test drivers to use standard
+ 'unittest' module from Python 2.1 (it no longer has
+ 'JUnitTestTextRunner' class).
=== Releases/CMF/HISTORY.txt 1.29 => 1.30 ===
+
+ New features
+
+ - Landed "skinned folder" module, which permits creation of
+ "folderish" types with customized replacements for 'index_html'.
+
+ - Added 'run_all_tests' script, to simplify running all unit
+ tests for CMF-related products.
+
+ - Factored out index and column lists, to ease customization
+ (Tracker #289)
+
+ - Modified DefaultDublinCoreImpl#setContributors() to use new
+ tuplize functionality (the ability to pass in a different
+ splitter function). If a string is passed in to
+ setContributors(), it gets split on semicolons. This allows
+ setting of contributor strings to be like
+
+ "Doe, John E (john@doe.a.deer); The Mertz Family Foundation; PBS"
+
+ If one so deeply and dearly desired. (The above would turn
+ into a three element tuple).
+
+ - Made it possible to map "normal" Zope objects as content
+ (Tracker #283):
+
+ o Skin and tool code which used to query the object
+ for its Type in order to then ask the types tool for a
+ TypeInfo object now just asks the types tool for type
+ TypeInfo object directly.
+
+ o Modified the TypesTool interface to signal that passing an
+ object to 'getTypeInfo' is acceptable, with the semantic
+ that the tool will attempt to find a TypeInfo object based
+ on the tool's type or metatype.
+
+ - Expanded signature of Document.CookedBody to change the
+ header levels Structured Text starts rendering at, and
+ whether to preserve those changes, following the following
+ logic:
+
+ If the format is html, and 'stx_level' is not passed in or
+ is the same as the object's current settings, return the
+ cached cooked text. Otherwise, recook. If we recook and
+ 'setlevel' is true, then set the recooked text and
+ stx_level on the object.
+
+ Bug fixes
+
+ - Hardened DirectoryView against objects which raise exceptions
+ during initial reads (typically due to permission problems);
+ these objects now capture and log the exception, and create
+ a BadFile object which allows browsing the traceback via the
+ ZMI (Tracker #317).
+
+ - Stopped polluting the browser with persistent skin cookie;
+ clear it as well on logout (Tracker #304).
+
+ - Cleaned up folder content filtering (Tracker #298, thanks
+ to Chris Withers for the patch).
+
+ - Implement new "List folder contents" permission (Tracker
+ #320), to prevent non-privileged users from being able to
+ browse 'folder_contents' (permission is by default mapped
+ to 'Owner' and 'Manager').
+
+ Note that this is really only a UI change:
+ 'PortalFolder.contentIds', 'PortalFolder.contentValues', and
+ 'PortalFolder.contentItems' are still public, to allow for
+ reasonable "site map" views on folders.
+
+ - Use saner type ID listing in 'search_form' (Tracker #324).
+
+ - Rewired "POST target" skin methods, replacing filesystem-based
+ DTML Methods with filesystem-based Python Scripts (from
+ Tracker #301 -- thanks to Chris Withers).
+
+ - Implemented *LARGE* patch to CMFDefault.DiscussionItem and
+ CMFDefault.DiscussionTool, plus removal of
+ CMFDefault.Discussions: changed threading strategy to remove
+ dependency on the path of the "host" content object. Includes
+ an ExternalMethod, CMFDefault/Extensions/update_discussion.py,
+ which must be run to convert existing content which contains
+ discussion.
+
+ - Overrode DublinCore's isEffective in CMFCalendar.Event to
+ always return true; this change prevents blocking view of
+ the event by standard_html_header.
+
+ - Updated INSTALL.txt to note that:
+
+ o Use with Zope 2.4.0a1 is *not* recommended.
+
+ o CMFDecor requires Zope Page Templates (Tracker #291).
+
+ and to describe upgrade process from CMF 1.0.
+
+ - Fixed typo in 'Unauthorized' exception raised by
+ 'PortalContent._getDefaultView'.
+
+ - Made all content types findable by catalog (Tracker #286).
+
+ - Ensured that ContentTypeRegistry's "Test" tab doesn't puke if
+ no MIMEtype is entered, or if one is entered which doesn't
+ have a '/' in it (Tracker #292).
+
+ - Suppressed overwrite of Subject when no 'Subject' or
+ 'Keywords' headers were present (Tracker #294).
+
+ - Ensured that 'Type' is indexed in newly-created
+ 'portal_catalog'.
+
+ - Fixed acquisition stripping in PortalContent.objectItems().
+
+ - Modified CMFDefault.DublinCore.getMetadataHeaders() to join
+ Subject by commas, instead of spaces. Since we parse/split
+ Subject on commas or semicolons now when a document is saved
+ by FTP or WebDAV, we need to feed it out in the same format.
+
+ - Fleshed out security declarations for 'portal_metadata' tool.
+
+ - Corrected pathname of 'MemberDataTool.memberdataContents' to
+ account for use of '_dtmldir' (thanks to Ricardo Newbery for
+ the patch!).
+
+ - Fixed buglet resulting from uninitialized local in
+ 'PortalContent.objectItems' (thanks to Seb Bacon for the
+ patch).
+
+ - Modified stock 'search_form' to query 'Type' rather than
+ 'meta_type'.
+
+ - Removed debugging / "paranoia" print statements (thanks to
+ Chris Withers for the patches).
+
+1.1 beta (2001/06/01)
+
+ New features
+
+ - Added CMFCore.utils.keywordsplitter to construct 'Subject'
+ dublin core header from both 'Keywords' and 'Subject' headers
+ passed in (meta tags/rfc822).
+
+ - CMF Document now uses StructuredTextNG for structured text
+ handling. Nicely enough, it uses the "with images" features, and
+ also enables named and inner links.
+
+ - CMF Document exposes two new accessor methods for getting at the
+ "cooked" and editable body, 'CookedBody()', and 'EditableBody()'.
+ Using the 'cooked_text' and 'text' instance attributes should be
+ considered deprecated.
+
+ - Added new "exemplar" content product, CMFCalendar, which
+ (for now) adds a simple content object, Event. This product
+ serves a similar didactic purpose as CMFTopic (which is now
+ "in the core"): it shows how to build new content types as
+ filesystem products.
+
+ - Implemented improved "safety belt" for concurrent Document
+ editing. See the dogbowl proposal,
+ http://cmf.zope.org/rqmts/proposals/ContentSafetyBelt
+
+ - Added new filesystem-based skin method type, FSSTXMethod, for
+ creating "methods" which render STX.
+
+ - Exposed "controlled vocabulary" for Subject in
+ 'metadata_edit_form'.
+
+ - Gave 'portal_skins' tool its own PUT_factory (Tracker #238).
+ Allows site builder to create skin methods via WebDAV/FTP,
+ including ZPT, PythonScripts, etc.
+
+ - Implemented "outbound" segment of the "Syndication tool"
+ proposal, q.v.,
+ http://cmf.zope.org/CMF/Members/andrew/folderRSS
+
+ - Made 'PUT_factory' use new 'content_type_registry' tool.
+
+ - Made 'PUT_factory' use 'invokeFactory', so that objects
+ created via PUT have their 'portal_type' set properly.
+
+ - Added ContentTypeRegistry class and related predicates for
+ mapping PUT requests (name,content_type,body) to type object
+ names.
+
+ - Allowed Reviewers to "retract" published content owned by
+ others.
+
+ - Added "Overview" ZMI view to tools.
+
+ - Added "Dublin Core" ZMI view to PortalContent; added an
+ editing view for Document and derivatives.
+
+ - Added "drop-in" workflow objects to the WorkflowTool,
+ including the ability to map workflows onto content types.
+
+ - Changed CMFDefault.Portal to install CMF Topic by default
+ when building a new CMF Site.
+
+ - Added a new criteria type, *FriendlyDateCriterion*, to
+ CMFTopic for building queries like 'When effective_date is
+ less than five days old'.
+
+ - Implemented 'portal_metadata' tool. See the dogbowl
+ proposal,
+ http://cmf.zope.org/rqmts/proposals/completed/metadata_tool.
+
+ - Extended DirectoryView objects to reload when the directory
+ they represent has changed, if Zope is running in debug mode.
+
+ - Added hooks to CookieCrumbler to permit site managers to
+ customize seting/expiring of the authentication cookie by
+ adding PythonScripts; two default filesystem implementations
+ are in CMFDefault's "control" skin.
+
+ - Extended TypesTool to deal appropriately with DTML factory
+ methods (e.g., for ZClasses).
+
+ - Made FSDTMLMethods searchable from the ZMI (Issue PTK(251)[]).
+
+ Bug Fixes
+
+ - Added 'manage_beforeDelete' to DiscussionItemContainer class,
+ and propagated to it from content deletion (Tracker #269).
+
+ - Only display the "join" action if the user has the "Add
+ portal member" permission.
+
+ - Check for appropriate REQUEST variables before invoking
+ CopySupport machinery, return a nice 'portal_status_message'
+ instead of allowing the traceback to kick in (Tracker #247).
+
+ - Initialize default DublinCore metadata for the site, so that
+ *some* value is available everywhere (Tracker #285).
+
+ - Add module-level globals aliases, to permit other products
+ to use elements of skins (Tracker #273).
+
+ - Replaced 'metadata_edit' DTMLMethod with PythonScript.
+
+ - Updated 'metadata_edit' to avoid clearing values not passed
+ in REQUEST (Tracker #268).
+
+ - Removed spurious whitespace being added to Subject.
+
+ - Fixed FSPythonScript to open file in text mode, so that
+ Windows verstions with CR don't cause the parser to choke
+ (Tracker #284).
+
+ - Simplified login-disabling logic in CookieCrumbler.
+
+ - Added '<base>' tag to headers of Document, NewsItem, and
+ DiscussionItem so that relative links work properly.
+
+ - Fixed the ActionsTool to suppress adding a trailing '/' to
+ "empty" action URL's.
+
+ - Fixed Document's content type sniffing to deal with odd case
+ in which "entire" HTML document was embedded as an STX
+ example.
+
+ - Replaced literal string permissins with "named permissions",
+ imported from modules in most places. (Please report any
+ which escaped!)
+
+ - Moved 'factory_type_information' registry entries back out
+ to the relevant modules (instead of lumping them in
+ CMFDefault.Portal).
+
+ - Simplified NewsItem to "Document with a twist" (NewsItems now
+ inherit lots of useful behavior from Document.
+
+ - Aliased DublinCore's Format() as 'content_type', so that
+ Zope's WebDAV support will do the Right Thing (TM) when
+ handling a PROPFIND.
+
+ - Suppressed "eager redirect" behavior in CookieCrumbler for
+ FTP or WebDAV (note that WebDAV fix only works for "extra"
+ HTTP methods; GET/PUT/POST still redirect).
+
+ - Made sure to update the catalog when a content object's
+ parent is deleted / moved (Tracker #261).
+
+ - Fixed lossage to File objects when no upload supplied
+ (Tracker #271).
+
+ - Fixed "Add to Favorites" when applied to Folders.
+
+ - Suppressed "Members" link in topbar (pointed to 'roster' method)
+ for users who would not be able to see it.
+
+ - Fixed irritating bugs in setting of skin-selection cookie.
+
+ - Removed ugly '_mimetype_registry' hack for 'PUT_factory'.
+
+ - Fixed a bug in CMFDefault.Document with PUT that only affected
+ FTP: when a StructuredText document that contained a full HTML
+ example (complete with <html>, <head>, and <body> tags) in its
+ body, it would pass the "does it smell like HTML" test and throw
+ everything away that wasn't inside the first matching pair of
+ <body> tags it found. Funnily enough, this bug was exposed when
+ trying to save an article about how to use FTP with Zope and the
+ CMF that contained such an example.
+
+ - Fixed glitch caused by '<dtml-return>' in
+ CMFDefault/skins/control/reconfig.dtml. Thanks to Hans de Wit
+ <hw@scp.nl> for reporting this!
+
+ - Allowed 'portal_type' to be a method, as well as an attribute
+ (eases ZClass-as-content).
+
+ - Fixed search form to pass 'created' instead of 'date' (probably
+ need 'modified', too); also, added selection list for 'Subject',
+ and fixed the "Last Month" option value.
+
+ - Fixed non-import in CMFCore/WorkflowCore.py (Tracker #239,
+ thanks to 'snej' for the patch).
+
+ - Updated CatalogTool to handle searchable vs. displayable DublinCore
+ dates properly.
+
+ - Replaced usage of .id with .getId() all through the CMF, to
+ conform with the new SimpleItem API. Thanks to Jens Quade
+ <jq@jquade.de> for pointing this out. (Issue PTK(241)[]).
+
+ - Extended 'index_html' to render portal description using STX
+ (Tracker #246).
+
+ - Updated CMFDefault skins to use Contentish.getIcon, including
+ the portal catalog. This greatly simplifies using ZClasses as
+ content. In CMFDefault/scripts you will find
+ 'convertCatalogGetIconColumn.pys), a Python Script that will
+ convert your existing Catalog to use 'getIcon' instead of
+ 'icon' (Issue PTK(244)[]). Also, synched interface definition
+ to show the 'relative_to_portal' argument.
+
+ - Extended 'folder_factories' to filter type objects using
+ 'isConstructionAllowed' in 'PortalFolder.allowedContentTypes'
+ (Tracker #249).
+
+ - Fixed display of replies on discussion items.
+
+ - Made appropriate use of 'portal_url', instead of BASEPATH
+ ad hockery, in skin methods (Tracker #259).
+
+ - Synched interface definition of 'Contentish.getIcon' with
+ reality (documented 'relative' parameter).
+
+ - Fixed "Ever" entry in 'search_form' to use a value safe in
+ timezones east of GMT (Tracker #236).
+
+ - Deprecated the CMFDefault.File.download method; it is still
+ available, but is no longer called by the current CMF skin,
+ nor is index_html aliased to it.
+
+ The method was necessary when the "View' method was the
+ default action when calling the URL of the File object, this
+ is no longer the case. The setting of the Content-Disposition
+ header is not needed when using the absolute URL of the
+ object, and causes certain browsers to misbehave.
+
1.0 final (2001/03/29)
- Removed embedded spaces in 'portal_status_message' strings