CHANGES.txt
Somewhere over the rainbow
- (__future__) Exposed role management for manager users on the default roster: managers can now "promote" members without going to the ZMI.
- (__future__) Added "custom schema" mechanism for content objetcts: site managers can now define additional propertysheets for a content type, which will then be reflected in instances created from the type.
- (__future__) Added simple link extraction / checking for textual content. Link checking also works for Link objects.
- (__future__) Added "composite content" types (see the "dogbowl proposal", (http://cmf.zope.org/rqmts/proposals/compounds/compoundproposal.txt).
- (__future__) Added DCWorkflow (through-the-web configurable workflows) to the core set of CMF products.
- 2 beta (2001/12/11)
New features
- Added docs from the crack ZC docs guys; these docs live in
the top-level
docs
directory. - Merged CMFDecor product's artifacts into CMFCore /
CMFDefault; theses aretifacts allow use of filesystem-based
Zope Page Templates as skins.
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.
- Hooked
manage_addFolder
to allow creation of PortalFolders from both WebDAV, FTP, and ZMI. - Improved tracebacks from broken FSDTMLMethods, which no longer indicate that every problem is in RestrictedDTML.
- Made it possible to add CookieCrumblers in nested folders. You can just drop in a cookie crumbler anywhere to change the login form for that area of the site. In fact, now you don't have to create a user folder just to change the login process.
- Made Link objects editable via FTP / WebDAV.
- Merged Chris Withers' FSSQLMethod into CMFCore.
- Added documentation for installing from CVS.
- Moved permission checking inside personalize_form to make sure Anonymous cannot access it without logging in (CMF Tracker Issue 349, thanks go to Bill Anderson).
- Added initial CMF use cases as FSSTXMethods in CMFDefault/help.
- Made validation methods of
portal_metadata
available to scripts. - Made skinned
index_html
reflect generic view on folder content, rather than simple title/description of the portal. - Added "Change and View" submit button to content editing
forms; added check for this button to POST handlers in CMFDefault,
and indirected redirect targets in those methods through
getActionByID
. - Added knob for skin cookie persistence to SkinsTool's "properties" tab. The default policy (unchanged) is that skin cookies expire at the end of the browser session. if Skin Cookie Persistence is checked the cookie will last a full yesr.
- Added an API to the
portal_actions
interface for querying, adding, and removing action providers. - Added a "multi-review" form, enabling a reviewer to publish or reject multiple items at once, using a common comment.
- Added ZMI tab to DirectoryView to allow re-basing the filesystem path.
- Added "breadcrumbs" to CMFDecor skins.
- Added initial support for WebDAV locaking to PortalContent.
- Added SortCriterion to list of criterion types for Topics, to permit sorting of results.
- Added "Local Roles" action to folders to ease collaboration.
- Add scarecrow assertions for the CMF-centric interfaces, and made the actual interfaces compatible with the standard Zope Interface package.
- Made FSSTXMethod display skinnable, and added ZPT version.
- Added
visible
attribute to TypeInformation actions, to permit indirection (viagetActionById
) without exposing the action in the CMF UI. - Extended MetadataTool to allow adding / removing element specs (i.e., it can now manage policies for "custom" schemas, as well as Dublin Core).
Bug fixes
- Refactored content and metadata editing methods of DefaultDublinCoreImpl, Document, and NewsItem to disentangle the excessive coupling. Each "path" for editing now has a "presentation"-level method, which directs traffic and reindexes the object; the underlying methods are much simplified.
- Fixed inner / named links in Document / News Item (thanks to Kenichi Sato for the patch!)
- Ensured that editing methods handle WebDAV locks correctly,
using a new
failIfLocked
assertion. - Added cookString method to CMFCore.utils for taking a string and making it id friendly, it also does a string.lower on the resultant regex. Changed TypesTool to utilize cookString to ensure that action ids are properly formated if the name is being used as the id.
- Added
getReply
to CMFDefault.DiscussionItem.DiscussionItemContainer, to permit access to an individual reply without needing to do traversal. - Corrected pass-through of
file
andseatbelt
arguments in newCMFDefault.Document.edit
method; also sync'ed ZMI edit method for documents with standard protocol (Tracker #417). - Added cookString method to CMFCore.utils for taking a string and making it id friendly, it also does a string.lower on the resultant regex.
- Made examples in INSTALL.txt less terse, and added notes on Windows-specific issues (thanks to Johan Mukhsein for the suggestions).
- Made error message generated by FSPropertiesObject capture the
offending line and line #; also, added logic to allow blank
lines and comment lines beginning with
#
(tracker #338). - Added fixup to Link objects for user-entered URLs which don't
supply scheme: for example, fix up
www.zope.com
tohttp://www.zope.com
. (tracker #361) - Updated CMFCore.CatalogTool to allow new, optional
idxs
argument tocatalog_object
(tracker #405). - Added a workaround for the problem where the CookieCrumber set cookies even though the user entered an incorrect password. RESPONSE.unauthorized() now cancels the cookie response header. The new login_form and logged_in form both try to invoke unauthorized(), so make sure you install the new forms.
- Implement the notional
search results item
interface for SkinnedFolder. - Corrected solecism in Topic (use of
criteria
for singular); removed the need to know about the funky generated IDs for criterion objects. Fixed derived bug in skins (tracker #408). - Modified error-logging code to avoid potential leaks of traceback frame.
- Made Document's
manage_FTPget
useEditableBody
, rather than accessingtext
attribute directly (improves reusability). LikewiseDocument.SearchableText
. - Merged Seb Bacon's refactoring of
getDefaultView
into 'CMFCore.utils._getView'; clients can now specify a view by name, as well. - Made the default content type for Image
image/png
, instead of the unintuitivetext/html
inherited from DefaultDublinCoreImpl (tracker #384). - Corrected typo in ActionsTool which broke actions for the root portal object (tracker #379).
- Updated the MemberDataTool to use an OOBTree, instead of the old-style BTree, to store member data wrappers (CMF Tracker 375).
- Corrected
personalize_form
to usegetProperty
where feasible, rather than relying on direct attribute access (tracker #372). - Removed an incompatibility with LoginManager in CMFCore.MembershipTool (tracker #365).
- Removed an infinite loop condition that arises when MembershipTool.createMemberArea gets called inside wrapUser (this could only happen if "Create Member Area" was checked in the Membership tool.)
- Added new
TitleOrId
skin method, and updated skins to depend on it rather than SimpleItem.title_or_id. - Made unit tests runnable without reliance on
zctl test
. - Corrected initial column set in catalog to include "ModificationDate" instead of "ModifiedDate".
- Ensured that object is recatalogued (e.g., after setting 'portal_type'; thanks to Florent Guillaume).
- Removed silly dependency of
CatalogTool.searchResults
on REQUEST (catalog already does the Right Thing (tm) when no REQUEST is available). Note that this requires updates to thesearch
skins, as they didn't pass it in. - Changed redirect target after rejecting an item to the search page for pending content items; this resolves the problem that the non-Manager reviewr who rejects an item no longer has View permission on it, and therefore gets an Unauthorized when redirecting to the object's view action.
- Moved generation of the "Add to Favorites" and "My Favorites" links from the CMFCore/ActionsTool into the CMFDefault/MembershipTool, which is a more logical location for it because it relies on information from the membership tool.
- Made Topic directly publishable (like PortalContent), using its
view
action (or the first action found, if view is not present). - Set title for newly-created member folders; fixes breadcrumbs that expect a title on the object.
- Allow URLs with query strings in StructuredText links.
- Update
news_box
to search based onType
, rather thanmeta_type
. - Fix
SkinnedFolder.Creator()
to callgetOwner()
with info argument. - Made CookieCrumbler check for
WEBDAV_SOURCE_PORT
environment variable (supplied by Zope 2.4.1+), and bail on intercepting authentication if found. - Included
Owner
in list of significant roles returned byMembershipTool.getPortalRoles
(e.g., so that the "Local Roles" interface can allow assignment of it). - Allow users with local role of "Reviewer" to see the "pending review" action.
- 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.
- Remove fossilized reference to
getSecurityManager
fromPortalContent._verifyActionPermissions
. - Modified the redirect after "Add to Favorites" to us the
view action, rather than
view
. - Fixed
Document.guessFormat()
to useutils.html_headcheck()
instead ofbodyfinder
regex to detect structured text versus html; avoids recursion limit for large HTML files. - Removed spurious
afterCreate
protocol for content objects. - Added mapping of
css
file extension to FSDTMLMethods. - 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).
- Modified CMFDefault.RegistrationTool.addMember to avoid flunking validation if properties are not passed (Tracker #335).
- 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). - Added
DiscussionItem.replyCount
(Tracker #328).DiscussionItem.hasReplies
now returns only a boolean value. Standard skins don't callreplyCount
due to performance concerns. - Factored content filtering logic into a Python Script.
- Improved handling of multiple rename targets (thanks to Chris Withers for the patch.)
- Completed conversion of form targets from DTML Methods to Python Scripts.
- Improved compatibility with Zope 2.4:
- support for new "restricted execution" mode;
- support for new catalog initialization API.
- updated
test_all
unit test drivers to use standardunittest
module from Python 2.1 (it no longer hasJUnitTestTextRunner
class).
- Added docs from the crack ZC docs guys; these docs live in
the top-level