Plone 2.5 (Sep 19, 2006)


This is an historical page intended for people who can't upgrade. Current versions of Plone can be found on the overview page

Integrating with PAS and Zope 3 views. Note: An updated version of the "Universal" installer was added on September 8, 2006

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

For installation instructions go to:

There may be hotfixes applicable to this release. Always check the Plone Hotfix Page before production deployment.

Available downloads

Release Notes

State Final release
License GPL
Release Manager Alec Mitchell
Released 2006/06/17 00:00:00 Universal

This is an infrastructure oriented release with a focus on getting Plone ready for the future. This means integrating Zope 3 technologies where sensible, and utilizing new technology from CMF as much as possible. The long term goal is to make the distinction between Plone as end-user product and Plone as infrastructure more clear. This release will be numbered 2.5 to conform to the new version numbering policy detailed in PLIP 114


This release requires Zope 2.8.7 and Python 2.3.5+ or Zope 2.9.3+ and Python 2.4.2+. **If you are using the tarball with Zope 2.9, you will need to remove Five from your instance Products folder, or else you will get errors on startup.** All other dependencies are included in the release tarball, these include CMF 1.6, AT 1.4, ATCT 1.1, and PAS 1.2, please see CMFPlone/INSTALL.txt for a complete listing. For more details on upgrades and product compatibility notes please see CMFPlone/UPGRADE.txt and CMFPlone/RELEASENOTES.txt

Change log

Plone 2.5 - released June 16, 2006

(name of developer listed in brackets)

  • Officially deprecated portlet_related which was slated for removal since Plone 2.1. [hannosch]
  • Fixed invalid URL for events/previous link in events portlet. This closes [hannosch]
  • Added missing i18n magic to the dummy workflow transition labeled 'No change' in content_status_history.cpt. [hannosch]
  • Fix rename from the action menu when using virtual hosting. Thanks to Daniel Nouri, Maurits van Rees, Alec Mitchell and Stefan Holek for pointers and code. [optilude]
  • Small fix to avoid an AttributeError in @@plone when viewing objects without isPrincipiaFolderish, in general uses of aq_explicit should be conditional. [alecm]

Release candidate 3 - released June 13, 2006

  • Added missing nocall: for toLocalizedTime in Fixes [alecm]
  • Added deprecation warnings for the old site creation machinery. [hannosch]
  • Fixed last deprecated occurrences of portal_object. Use portal instead. [hannosch]

Release Candidate 2 - released June 8, 2006

  • Fixed issue with encoding of translated ui strings in javascript. [ree, nouri]

Release Candidate 1 - released June 3, 2006

  • Deleting objects in the portal root now requires the user to have the 'Delete objects' permission on both the portal and the objects to be deleted. This makes the rules for object deletion consistent between the portal and all other folderish objects in the portal (at least those based on BasePloneFolder or AT's BaseFolder). This fixes [alecm]

  • Don't propose local workflow policy configuration iw we aren't in a folderish type. We don't allow it on plone root too. [encolpe]

  • Finish worklists implementation with workflow id and complete guard filtering. [encolpe]

  • Polished HTML in It generated <LI> element without the <UL> when there are no livesearch results. [spliter]

  • Added missing 'Apply' button in group preferences again. This closes [hannosch]

  • Added a few functional tests using 'zope.testbrowser', see 'AddMoveAndDeleteDocument.txt' and 'LoginAndLogout.txt'. These should eventually replace the 'rendering.txt' and 'forms.txt' tests.

    • All *.txt files in the tests/ directory are now picked up by

      System Message: WARNING/2 (<string>, line 75); backlink

      Inline emphasis start-string without end-string.

    System Message: WARNING/2 (<string>, line 76)

    Block quote ends without a blank line; unexpected unindent.

    ''. I'm open to change here.

    • Note that these tests are only run if you have Five >= 1.4

    System Message: WARNING/2 (<string>, line 79)

    Block quote ends without a blank line; unexpected unindent.


  • Now that five:traversable handles multiple inheritance better, we can just make some common base classes traversable. Fixes issues with CompositePack. [alecm]

  • Fix several wrong usages of the 'label' tag. [nouri]

  • Added little enhancement, to allow overwriting of the name that should be shown. This closes [hannosch]

  • Use sort_limit in the search for portlet_recent. Fixes [alecm]

  • Expose allowAnonymousViewAbout and allowRolesToAddKeywords in the site configuration configlet. Fixes [wichert]

  • Move the 'mail password' text and link on the login form so the tab order is more sane. Fixes [wichert]

  • Rename 'large site' option to 'Many users/groups', which covers its meaning properly. If more similar options are added later we can group those in a new 'large site' option. fixes [wichert]

  • When changing ownership of an object the new owner is identified by a userid, not the username. Adjust the implementation accordingly. This fixes [wichert]

  • Fixed spelling error in livesearch. This closes [hannosch]

  • Added workarounds so the rounded corners for portlets work in Internet Explorer too. [limi] [spliter]

  • Moved column padding to public.css to make sure it doesn't stick around when doing customizations of the site theme. It used to be in columns.css. [limi]

  • Fixed private attribute access in PloneBaseTool createExprContext to use the API. This way it will also work with the Zope3 TAL engine. [hannosch]

Beta 2 - released May 17, 2006

  • Updated the GenericSetup profile format to CMF1.6-style. No configuration changes were made, only format changes. [hannosch]
  • Various small i18n markup fixes. Updated folder_edit_form to conform to the same style as the Archetypes based edit forms, as it is still used for the Plone site object. [hannosch]
  • Added smart folder sub-topic listing to all available smart folder view templates. Fixes [alecm]
  • Added link to error reference on to error log form. Fixes [brcwhit]
  • Fixed to check the following permission before checking whether a user is anonymous: Modify portal content, Add portal content, Review portal content. This closes [brcwhit]
  • Fixed livesearch issues. This closes . [ree]
  • Set access for all plone control panel forms to View = 0:Manager. Closes [brcwhit]
  • Fixed extra space in changeSiteActions function in some migrations. This closes [hannosch]
  • Fixed the float bug on Events' view page This closes [spliter]
  • Fixed bug in login_success. If you did not came_from somewhere, it would still offer you to go there. Changed this to portal_url instead. This closes [hannosch]
  • Added migrations to get rid of deprecation warnings due to actions which still use the old scripts. Gave @@plone.isRightToLeft a sane default value. Made the quoting conventions used in the XML profiles a bit more consistent. [alecm]
  • Simplified action url/condition expressions by using @@plone view methods. There are now no more URL expressions that use 'python:' expressions. [alecm]
  • Readd folder_edit_form which is still used to edit the site root. This closes [hannosch]
  • Fixed some i18n markup problems revealed by the Zope 2.10 ZChecker tests. [hannosch]
  • Moved css rules for the photo album view inside Plone's public.css, instead of having them inline in the template. This way they can be overridden. This closes [hannosch]
  • Repaired the portal logo appearance visual bug in IE 5, 5.5. This closes [wald]
  • Corrected the portlet_calendar view for tableless layout for Firefox. This closes [wald]
  • When setting some background to the top, Live Search did not look properly. Moreover in IE it had a bad visual behavior. Changed the visual representation of the Live Search to repair the improper look. This closes and http.:// [wald]
  • contentActions drop down menus were falling below the content area text in IE. This closes, and [wald]
  • Updated tableless to get it in sync with the tablebased This closes [hannosch]
  • A confirmation page is now displayed upon successful submission of the contact-info form. This fixes [rocky]
  • Added missing i18n translation in live search for 'Advanced search' and 'Show all'. This closes [hannosch]
  • Fixed incorrect coloring of workflow states in content menu in some cases, due to missing normalizeString call. This fixes [hannosch]
  • Fixed typo in This closes [hannosch]
  • Fixed trivial error in validate_emailaddr. This closes [hannosch]
  • External editor link showed on temporary content. This closes [hannosch]
  • Calendar showed arrow when it's not clickable. This closes [hannosch]
  • Links in calendar portlet showed only "published" items, rather than all states set by calendar tool. This closes [hannosch]
  • OpenDocument files are no longer shown as garbage text. This fixes [hannosch]
  • Readd a couple prematurely deleted scripts. Fixes #5482. [alecm]
  • Fixes #5487. Changed 'orig_template' query value from context's URL to HTTP_REFERER in 'object_rename' so that we can really redirect to the original view and not only the default view in 'folder_rename'. [maurits, nouri]
  • Turn I(Selectable)ConstrainTypes and I(Selectable)Browser default into Zope 3 interface with reverse bridges. Depends on changes to ATContentTypes trunk and CMFDynamicViewFTI trunk as well! [optilude]
  • Various small fixes for support of future CMF versions. [hannosch]
  • Incorporate some fixes for Zope 2.10 support. Note that 2.10 is not officially supported for Plone 2.5. [hannosch]
  • Deprecate CatalogTool._initIndexes [wichert]
  • Add a category parameter to createToplevelTabs to allow skins to use a different action category. [wichert]
  • The padding on the documentEditable content area depends on the design in public.css, and was moved there to make CSS customization more predictable. [limi]
  • Fixed missing security declarations in MembershipTool. [stefan]
  • Allow turning off PlonePAS installation during 2.1 -> 2.5 migration using an environment variable. If 'SUPPRESS_PLONEPAS_INSTALLATION' is 'YES', then the migrations will not install PlonePAS. This is not a supported configuration, but it should allow CMFMember/Teamspace users to upgrade their 2.1 sites. [alecm]
  • No longer remove expires and effective parameters from catalog queries. The use of the DateRangeIndex is sufficient, no reason not to let users further restrict results. [alecm]
  • Use portal_transforms to do stx -> html conversion instead of relying on ugly module import in the quickinstaller configlet. [alecm]
  • Modify local role addition and removal scripts to only reindex object security once. [wichert]
  • Remove never used use_portrait handling from folder_localrole_set [wichert]
  • Deprecate CMFPlone.MemberData. This class is never used, and the future is with PAS-based objects instead of membership/memberdata tools. [wichert]
  • Marked FolderWorkflow and PloneWorkflow as deprecated. Workflow setup is handled by the GS profile now. [hannosch]
  • Removed unused default configurations from PloneControlPanel and CatalogTool, which are handled by the GenericSetup profile now. [hannosch]
  • Force a catalog reindex on upgrade to get correct work boundaries on transformed html content. [wichert]
  • Implemented displayContentsTab and getViewTemplateId in @@plone. The script getViewTemplateId is now deprecated, displayContentsTab will stick around for a while because people often override it in their content classes. [alecm]
  • Added another convenience method to @@plone to simplify template and action logic. getCurrentFolder() returns the object if it is a not the default page for its container and is a structural folder otherwise it returns the object's container. Simplified some template and action logic. [alecm]
  • Made all our deprecated scripts use the new views internally. [alecm]
  • fix strange English in site feedback mail template. Fixes [wichert]
  • Added a cache decorator to the @@plone implementation so that multiple calls to expensive methods don't require multiple computations. [alecm]
  • Added three convenience methods to @@plone to simplify action and template logic. 'getParentObject()', which returns the container of the current context object. 'isFolderOrFolderDefaultPage()', which returns True if the current object is either a folder or the default page of a folder. 'isPortalOrPortalDefaultPage()', which returns True is the current object is either the portal, or the default page of the portal. [alecm]
  • Removed __getattr__ hack from the @@plone view. [alecm]
  • introduce a large_site site property, which can be used to tweak site behaviour. Modify the user and group management templates to show all users and groups on small sites and search for them on large sites. [wichert]
  • Fixed wrong html markup in events portlet. Closes [hannosch]
  • Fixed dumb migration issue bug [alecm]
  • Slightly optimized portlet events view for performance. [hannosch]
  • Refactored some more logic out of portlet_calendar into calendar view. [hannosch]
  • Removed vcXMLRPC.js. [fschulze]
  • Removed underline button from Kupu, you shouldn't use underline for web pages - as it's very hard to discern from a link. If you want it back, add the following to your CSS file: #kupu-underline-button { display: inline; } [limi]
  • Fixed up Summary View to show author/date on News Items and location/time on Events. [limi]
  • Added condition so that you don't get the "send feedback to author" on yourself. If you don't know how to get in touch with yourself, seek professional help. ;) [limi]
  • Disabled the RichWidget file upload field using CSS. The reason is that it causes a lot of problems for naive users, who upload Word documents, images etc here. The content has to be in HTML or the selected text format for this to work. If you want to re-enable this in your site, add the following to your CSS file: .fieldUploadFile { display: block } [limi]
  • Removed inline styles on file upload field in RichWidget, added classes fieldUploadFile and fieldTextFormat so these elements can be styled using CSS. [limi]
  • Adjusted status message related methods of PloneTool to the new implementation of statusmessages as an adapter for the request rather than a utility. [hannosch]
  • Added some missing .metadata file for images. [panjunyong]
  • Removed from the tableless skin - there's no need for it to have a separate file for this. [limi]
  • Use fullname but not username in viewThreadsAtBottom. [panjunyong]
  • Adding relaxed mode to PloneTool.normalizeString(). This will be used in ATContentTypes to avoid stripping too much from valid filenames being uploaded. [optilude]
  • Making links link directly to the target in the navtree. Fixes [optilude]
  • Making the user-name link in the personal-bar link to the author profile. Fixes [optilude]
  • Added more insane TAL logic to to actually show the error to the user, as opposed to simply logging it. If anyone has an issue with this, please just remove the tal:on-error. Fixes and [optilude]
  • Handle empty values for group properties of lines and ulines types correctly in the group details template. [wichert]
  • Removed 'input' from the print CSS blacklist; forms print properly now. [limi]
  • Moved the colophon icons into classes instead of using inline styles. [limi]
  • Lots of improvements to the visual editor [limi]:
    • Added "pullquote" and "callout" layout classes, renamed "formatted" label to "literal"
    • Updating icons to better match the Plone style
    • Improved tool ordering (growing elements like the text format selector should be at the end, since they displace all the other icons when they change if not)
    • Fixed stupid bug in Mozilla by explicitly setting the link styling inside Kupu
    • Made all images load from an absolute URL to improve caching
  • Fixed CSS regression: the p tag would sometimes be a victim of the peekaboo bug after we removed it to work better with Kupu; put it back in with a position: relative hack instead. This should work better. This closes [limi]
  • Made the file_view link directly to the file. This closes [limi]
  • The Sharing page was showing mail addresses to easier be able to discern between users with similar user names; now it uses full name instead. This closes [limi]
  • Move two IE hacks to IEFixes.css.dtml where there belong, as these had ugly side-effects when viewing a site with IE 7 beta2. [hannosch]
  • Renamed "discussion" to "comments" in the UI, made the labels more explicit about what they actually do. [limi]
  • Checkboxes got background in IE, this was fixed. Also moved the 'noborder' class to public.css. [limi]
  • prefs_mailhost_form looked up "smtp_server" in a strange location. Removed some backwards compatibility code from PropertiesTool as well. Fixes [hannosch]
  • Clarify description for 'show short name' feature in the prefs panel. Closes [hannosch]
  • Added warning message to version overview in the control panel if PIL is not installed. Closes [hannosch]
  • Fixed inconsistencies where some 'Controller Python Script' were being declared as normal 'Script (Python)' and were missing the state variable. [deo]
  • Fix confusion between user names and user ids in the membership tool. Fixes [wichert]
  • Fixed bug: can't access content when the user have no permission to access the acquired left_slots/right_slots properties. [panjunyong]
  • Introduced a new class "tile" to use in the portlets. The previous portlet code implicitly assumed that all links would be block-level, which is not a good thing. This should have minimal impact on old portlets, but if you want the block-level behaviour and stay compatible with older portlet code too, just add class="tile" to your links. [limi]

Beta 1 - released March 31, 2006

  • Added "Extension profile" support to the addSite.zpt ZMI form to allow extension profiles to be applied to a site at site creation time, similar to how customization policies used to be available. [rafrombrc]
  • Removed nearly all instances of the "classImplements" idiom which dynamically creates Z3 interfaces from Z2 interfaces, replaced them with real Z3 interfaces, dynamically creating Z2 interfaces using "createZope3Bridge" calls. [rafrombrc]
  • Added the portalWarningMessage and portalStopMessage css classes which are used for status messages with 'warn' or 'stop' type. portalMessage is still used for the default case of an 'info' message. [hannosch]
  • Fixed up Summary View to show author/date on News Items and location/time on Events. [limi]
  • Incorporated various fixes for RTL support. [fschulze]
  • Moved the hidden accessibility items from public.css to base.css. [limi]
  • Finally put back the native support for rounded corners that was pulled out right before the 2.1.0 release, you can now put rounded corners on portlets by using the portlet(Top|Bottom)(Left|Right) classes. [limi]
  • Fixed duplicate css definition for livesearch background. This fixes [hannosch]
  • Fixed erroneous form actions in prefs_error_log_form. Made it work even if the button labels were translated. [hannosch]
  • Tabindexes aren't as good for usability/accessibility as we once thought, and they wreak havoc with JavaScript/AJAX type code that dynamically inserts form elements. Instead, we should have the first element in the main body have tabindex="0" and the rest not have tabindexes, this making the cursor focus on that element first, and then follow normal ordering thereafter. Fixed IndexIterator to support just this - when mainSlot=False it always returns None; when mainSlot=True, it returns a number on the first iteration, and no number thereafter. Fixed up global_defines, the portlet fetcher and various templates that were abusing tabindexes to get a unique number for form elements to reflect this. Also added a new iterator called uniqueItemIndex in global_defines, which can be used when a page-unique number is needed, as it is in [optilude]
  • Replace &larr; with '-' in the breadcrumb trail for RTL environments. It seems that &larr; is not present in common RTL fontsets on Windows. Firefox can compensate for that, but IE can not.
  • Re-added toPortalTime script which was accidentally removed earlier. It is deprecated though and won't be included in Plone 2.5. This closes [hannosch]
  • Added explanatory doctests for the translation service tool l10n methods. [hannosch]
  • Added some missing i18n statements for link related tags in the headed. This fixes [hannosch]
  • Fixed exception in getDefaultPage when the LinguaPlone-aware content type is not associated with a workflow chain. [panjunyong]
  • Added Turkish map for UnicodeNormalizer and consolidated the mappings. This fixes [hannosch]
  • Included e-mail address in mail_password_form into the i18n message. Fixes [hannosch]
  • Modified viewThreadsAtBottom to make it better work with css: div is not shown when no discussions exist or no discussions are allowed. Image icons in front of each reply is now a background image so that can also be styled by css alone. Added the style in authoring.css [ender]
  • Standardized how description fields are rendered in html among the various templates. document_view used a <p> while folder_listing used a <div> etc. They all use <p> now and omit the field completely when there is no description (all similar to document_view). [ender]
  • Re-added support for topLevel and bottomLevel navtree propreties, as well as the new name (of the navtree portlet) and root (of site navigation) properties, and added the Sprout navtree preference panel to let users manage these settings. Factored the navtree code out to .browser.navtree, which is TTW importable and contains a re-usable buildFolderTree() function that can be used to build navtree-like structures in custom code. See the docstrings in that module for more details. THIS REQUIRES THAT YOU RE-CUSTOMIZE YOUR NAVTREE IF YOU HAVE A CUSTOM VERSION IN YOUR SITE! Fixes [optilude]
  • Split the various navigation views into their respective parts, no more meta-navigation interface. [alecm]
  • Do no use javascript in failsafe_login_form - it is not safe [wichert]
  • Remove use of zLOG in favor of the python logger, add some content classes to five:deprecatedManageAddDelete to avoid some warinings. [alecm]
  • Added a BBB getMultiAdapter to lookup views for zope 2.8, which means fewer deprecation warnings and an easier migration path to zope 2.10. [alecm]
  • Added getEventType index for KeywordWidget in the ATCT event type. [fschulze]
  • Added method to Catalog Tool to fully rebuild the catalog by walking the tree and looking for content, as well as a ZMI button. Fixes [alecm]
  • Removed code from for default_frontpage. This is now handled by the GenericSetup driven site creation. This fixes [hannosch]
  • check_id error messages were not translated. This fixed [hannosch]
  • Added view for sitemap, and made navtree use a recursive macro call, rather than recursively calling the template, as it should be faster. Fixes [alecm]
  • Added drag'n'drop reordering of folder contents. [fschulze, alecm]
  • Fix PloneTool.changeOwnershipOf to not test for user existance by trying to find a user id in listMemberIds(). [wichert]
  • Remove options to list all members and groups from the preference pages; this does not scale and may not be possible in PAS environments. [wichert]
  • Merge PlonePAS skin layer into CMFPlone skin [wichert]
  • Rewrite ownership_form to not list all users, but allow searching for possible new owners instead. [wichert]

Alpha 2 - released February 23, 2006

  • Major refactoring of the entire PloneGenerator / portal creation framework; now using GenericSetup with XML-based setup profile to specify the initial site configuration state. (see CMFPlone/profiles/default directory) [rafrombrc]
  • Added ignoredSkinLayers option to to filter out certain folders. [hannosch]
  • Removed default front-page from ./www. New location is: ./profiles/default/structure [hannosch]
  • Merged PlonePAS bundle. This implements the start of step 2 for PLIP 102. [wichert]
  • Do no list all groups in the sharing screen, but make it possible to search for them. Fixes (last) part of [wichert]
  • Fix confusion between user names and user ids in the membership tool. Fixes [wichert]
  • Converted unit tests to use the external PloneTestCase product instead of a local modified copy. [hannosch]
  • Factored out 'default page'-related functionality into a view that provides IDefaultPage. Factored out createBreadCrumbs into a view that provides INavigationStructure. Started implementing soon-to-be-written PLIP for configurable navigation root. [dreamcatcher]
  • Factored out most of the 'functions' in into real functions that take a 'context' in Later one, those will be used by the new adapters code. [dreamcatcher]
  • Added helper functions for making 'zope.interface'-style declarations from Zope 2 interface declarations. Removed some BBB code. Make sure that for all interfaces declared, they are declared for both Zope 2 and 'zope.interface'-style. [dreamcatcher]

Alpha 1 - released January 29, 2006

  • Installed CMFPlacefulWorkflow during migrations. [encolpe]
  • Merged plip108-five-translationservice r8093:8841 into trunk. This implements PLIP 108 Zope3 MessageID's and PLIP 111 new portal status message infrastructure. [hannosch]
  • Merged hannosch-cleanup branch. This removes a lot of unused files and moves some files to /portal_skins/plone_deprecated which will be removed in the next release. [hannosch]