CMFEditions 1.0alpha3 (Unreleased) (Jun 03, 2006)

This is not a final release. Experimental releases should only be used for testing and development. Do not use these on production sites, and make sure you have proper backups before installing.

This release is intended to lower upgrading risks for production systems based on trunk head till svn revision 24318 of 2006-06-03. (Deprecated)

For additional information about this project, please visit the overview page .

Available downloads

Release Notes

Tested with Plone 2.1.2
State Unreleased
License GPL
Release Manager Grégoire Weber
Expected Release 2006/06/03

Release Target Group

The alpha3 shall give people using the trunk in production systems a well defined upgrade path to the upcoming CMFEditions 1.0beta1. If you don't belong to this group of people you shall wait for the upcoming CMFEditions 1.0beta1 release!

If you immediately need a working versioning solution or want to evaluate CMFEditions you may use this release.

In CMFEditions 1.0beta1 some internals of the version storage will change and causing some migrations to take place. It's planed to support migrations from 1.0alpha3 to 1.0beta1 but not from the trunk of earlier svn revisions than 24318 to 1.0beta1 directly.

Credits: alecm, azy, duncanb, gotcha, gpgi, gregweb, rafrombrc, rlemmi, stonor, syt, vds
(Please file me your name and login name if I forgot you.)

Change log

Bugs fixed

- Fixed tracker issue #15 [alecm, gregweb]

- When previewing a version the expandable history link is removed as this
  doesn't make sense at all and caused double fetching of history items.
  [gregweb]

- Use the default view of the retrieved object, as it may be different from
  that of the current object. [alecm]

- The expandable version link is only shown for users having the permission
  to view the history. [rafrombrc]

- Added RetainATRefs modifier [vds]

- Fixed broken ``isUpToDate`` [gregweb]

- ``version_id`` wasn't correctly set at the working copy at save time.
  Because of this it may happen that the wrong version info was saved
  with the version aware reference. The version_id is now set at the end
  of the save operation. [alecm, gregweb]

- Handle usecase where an inside reference is moved outside its container.
  Still need to handle case where it has been replaced by another object
  with the same id.  [alecm]
 
- Changed API for Archivist methods and the dereference utility method so
  that they now accept an optional history_id, rather than implicitly
  allowing the 'obj' parameter to be a history_id. As side effect this
  will help in supporting multi location checkout in the future.
  [alecm, gregweb]

- Fixed various UI issues. [rlemmi, vds, alecm]

- Fixed SF issue #1376836. [alecm]

- restored at's extra_buttons slot (some others slots are still missing
  because of this template override) [syt]

- Totally refactored recursive retrieve of an ancient version of an object.
  Fixed a lot of folderish bugs with this refactoring. [gregweb]

- Corrected a hairy acquisition bug that caused wrong security evaluations
  (ArchivistTool.py). Acquisition is a monster feature! [gregweb]

- The storage now returns obj.modified() instead of
  obj.getModificationDate() because it's more fine graned. [gregweb]

- Added ReferenceFactoriesTool.py which in essence knows how to
  instatiate a reference. The current implementation is inflexible and
  knows only how to instantiate object into an ObjectManager. This
  is the first step in preparation for AT reference handling. [gregweb]

- Fixed tracker issue #16 RuntimeError: maximum recursion depth exceeded.
  I (gregweb) suspect it got fixed by: [alecm]

- Fixed identical tracker issues #5, #6, #7, #8. I (gregweb) suspect it got
  fixed by: [alecm]

- Added modifier to copy permissions from working copy onto retrieved
  versions, otherwise retaining workflow can have some very strange
  consequences. [alecm]

- Fixed a number of bugs involving handling of adding and deleting subobjects
  of versioned folders.
  [alecm]

- Fixed a permissions bug which made the versions_history_form inaccessible if
  any of the versions were saved while private (or otherwise had
  'Access contents information' disabled).
  [alecm]

- Made quickinstalled product reinstall/uninstall work without issue.  Fixed
  unit tests for Plone 2.1.  Use mutators in templates and tests where
  applicable rather than direct attribute access. Was Issue #9, #10 and #11.
  Thanks to Andrew Lewis for the patches and reports. [Andrew Lewis, alecm]

- Corrected bugs in ``RetainWorkflowStateAndHistory`` modifier and the
  modifier registry avoiding the review state and the workflow history
  from beeing retained on retrieve and revert.


Features added

- Added danish translation. [stonor]

- Retrieving an object just for preview (without replacing the working copy)
  caused a lot of headaches and got more and more complex und ununderstandable.
  Everything got much simpler by just using a savepoint/abort pair at the right
  place while retrieving. [alecm]

- I18N tuned (diff-legend untested), french added
  [Gpgi, gotcha]

- Added more tests to improve coverage. [azy, vds, alecm]

- Added support for ATCT (Archetypes Content Types). [azy]

- Added ZMI interface for modifiers. [rlemmi]

- It's now possible to save a new version in the edit view. As soon as a
  version sahll be saved a comment field is inserted to add a comment.
  [rlemmi]

- Added expandable version history to document_byline. [rlemmi]

- Made the ModifierRegistryTool make use of any preserve dict passed back to
  it by afterRetrieveModifiers.
  [alecm]

- Added optional CMFDiffTool support for generating diffs between object
  versions.  For this to work you need to setup the diffable fields on each
  type in portal_diff.  In the 'alecm-at-schema-diffs' branch of CMFDiffTool
  there is a diff type that can be applied to any AT object which will
  automatically setup diffs for all fields in the schema (when using this
  any value can be entered for the field in portal_diff).
  [alecm]

- Added a versioning policy (at_edit_autoversion) which automatically creates
  new versions on edit for AT types which are configured to support the policy
  in the configlet.  This is implemented using a simple macro override on
  AT's edit_macros, and a new entry in the AT edit form controller chain.
  [alecm]

- Added new interface IContentTypeVersionPolicySupport and implemented it in
  portal_repository.  It allows products to register versioning policies
  (classes which implement IVersionPolicy), and to associate those policies
  with specific portal types.  IVersionPolicy objects may define methods
  (setupPolicyHook, removePolicyHook, enablePolicyOnTypeHook,
  disablePolicyOnTypeHook) which can be used to install/uninstall policy
  specific behavior in the portal, on adding/removing the policy, or enabling/
  disabling the policy on a specific type.
  [alecm]