You are not logged in Log in Join
You are here: Home » Download Zope Products » Content Management Framework » CMF-1.2beta1 » CHANGES.txt

Log in
Name

Password

 

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.
  1. 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 (via getActionById) 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 and seatbelt arguments in new CMFDefault.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 to http://www.zope.com. (tracker #361)
    • Updated CMFCore.CatalogTool to allow new, optional idxs argument to catalog_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 use EditableBody, rather than accessing text attribute directly (improves reusability). Likewise Document.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 unintuitive text/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 use getProperty 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 the search 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 on Type, rather than meta_type.
    • Fix SkinnedFolder.Creator() to call getOwner() 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 by MembershipTool.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 from PortalContent._verifyActionPermissions.
    • Modified the redirect after "Add to Favorites" to us the view action, rather than view.
    • 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.
    • 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 call replyCount 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 standard unittest module from Python 2.1 (it no longer has JUnitTestTextRunner class).