Plone 2.5.1 (Oct 03, 2006)


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

First maintenance release for Plone 2.5. This features a number of important security improvements and bug fixes, and is a required upgrade for Plone 2.5 users.

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/09/15 00:00:00 Universal

The following is a list of important things to note when installing or upgrading to Plone 2.5.1:

  • The recommended Zope version for this release is now 2.9.5+, it will work out of the box with Zope 2.9.4, and can be used with Zope 2.8.7 by replacing the included ``Five`` product with the latest Five 1.2.x release Note: This has changed from the previous release
  • When used with Zope 2.9.5+ the included ``Five`` product should be removed as a newer version is included with Zope.
  • This release includes a number of important fixes addressing Cross Site Scripting vulnerabilities in user uploaded content, including member portraits. Details on the issues and steps for cleaning up any existing content exploiting the member portrait issue can be found in the document How to clean up link spam on your site.
  • This release requires PIL (the Python Imaging Library) due to the member portrait bugfix. You must install it before starting Plone.
  • PIL is included in the installers, and is available from most linux distributions. It can be downloaded from the PIL site or installed using the command easy_install -f Imaging if you have the python setuptools and necessary PIL dependencies installed.
  • Sites which have migrated from Plone 2.1.x and had local roles assigned to groups in parts of the portal may find that those roles are now invalid because they have the previously mandatory ``group_`` prefix. There is an ``External Method`` included with Plone 2.5.1 which will reassign these roles to the proper groups. You may run this method on the portal to clean up any folders or objects with invalid group roles. You should not use this method if you have groups on your site that are intentionally named with a ``group_`` prefix. The following are the steps needed to apply this ``External Method`` to the portal:

    1) Go to the ZMI for your portal and select ``External Method` from the ``Add`` dropdown menu.

    2) Use ``stripGRUFLocalRolePrefix`` for the id, ``Strip Local Role Group Prefixes`` for the title, ``CMFPlone.stripGRUFLocalRolePrefix`` for the module name, and ``do`` for the function name.

    3) Click the ``Save Changes`` button.

    4) Click the ``Test`` tab at the top of the screen.

Change log

Plone 2.5.1 - released September 28, 2006

  • The content tab selection logic now checks the request in addition to template_id when trying to determine which tab should be selected. [rocky]
  • Noted the new hard dependency on ElementTree that was introduced in the Marshall product as of Plone 2.5.1. [hannosch]
  • The plone_various and plone-final steps now honour GenericSetup conventions and only run when a config file is present for them. ExtensionProfiles no longer need to override these steps. Fixes [mj]

Plone 2.5.1-rc1 - released September 11, 2006

  • Fixed an UnicodeDecodeError in enableSyndication script. This closes [hannosch]
  • Adjusted button CSS to have overflow: visible because Internet Explorer makes them very wide in foreign languages like Finnish. This fixes - thanks to Mikko. [limi]
  • Made login_form and default_error_message not invoke the portlets, since they are irrelevant and expensive in those forms. Also made the error template a valid HTML document. [limi]
  • Updated the CSS validation link to use the CSS 2.1 and CSS 3 compatible profile, which is what Plone uses. [limi]
  • Added description in the dict in WorkflowTool's getTransitionsFor. [ender]
  • Corrected the log_exc method in to actually log the exception, as it was done before replacing zLOG with Python's logging module. [hannosch]
  • Make the object_delete and folder_delete methods require non-GET requests. This is a bit of a band-aid and it is likely we will want to do the same for other object actions which could be easily triggered by a crawler (a paste for instance, which may have been preceeded by a cut or copy). Related to [alecm, limi]
  • Make the syntool methods for enabling and disabling syndication check for the Manager properties permission on the object. [alecm]
  • Making text/* not render inline for security reasons (Internet Explorer renders these blindly, no matter that they are not text/html), and fixing inline rendering of Office documents and PDFs in the process. [limi]
  • Fix member portrait handling by automatically scaling all incoming images using PIL. This will throw an IOError on any invalid image and also save some bandwidth and space in the zodb. [alecm]
  • Added method and management template to membership tool to cleanup members with bad images. [alecm]
  • Made 'setuphandlers.PloneGenerator.setupPortalContent' more robust by checking if the Members folder is really there. [nouri]
  • Copied '_getSecurity' from Archetypes.utils to avoid a dependency. Plone should not import from Archetypes to minimize coupling. [stefan]
  • Added a Unicode and UTF-8 aware case normalizer to the plone_lexicon pipeline. Goes with the fix for [stefan]
  • Circumvented a UnicodeDecodeError on smart folders editing view. This closes [hannosch]
  • Added new css class visualIcon. This will be used to make generated.css much smaller in Plone 3.0 and is introduced now, so people can see how this will affect templates. Only templates which use css to add icons for content types are affected. [fschulze]
  • DiscussionTool.cookReply needs to be available to anyone who can comment on an item, otherwise the comment will not be cooked and we get HTML injection. This fixes [alecm]
  • Made the code in utranslate more error resilient and added tests for it. [rafrombrc, hannosch]
  • Enhanced accessibility of adjacent links in main_template. This fixes [hannosch]
  • Removed some unnecessary hyphens from date_components_support. This fixes [hannosch]
  • Added Five and CMF version to the control panel version overview. This closes [hannosch]
  • Made getInheritedLocalRoles in PloneTool more error resilient. This closes [hannosch]
  • Added some workaround code for the general misbehaving utranslate and uLocalizedTime methods. They should return Unicode now again, but right now they only work for the single supported site encoding of utf-8. This fixes [hannosch]
  • Synced table-less and table-based main_template again. This fixes [hannosch]
  • Fixed incorrect status message after bad login attempt. This closes [hannosch]
  • According to GenericSetup.interfaces.IProfileRegistry: when an extension profile is registered for 'None', it should be available in any type of site. Fixed CMFPlone.factory to include such profiles. [stefan]
  • Made PloneTool.browserDefault check if the default page it is trying to render is the folder itself, and prevent it from doing so (which would cause an endless loop). Fixes [alecm]
  • Applied patch from paregorius to add ids to all visualClear divs. Fixes [paregorius, alecm]
  • Applied patch from paregorius to make the LiveSearch div vanish in IE as needed. Fixes [paregorius, alecm]
  • Made PloneTool.browserDefault check for a result of None from getLayout and raise a sensible error. Generally this means that the FTI is missing or otherwise incorrect. Fixes [alecm]
  • Added migration to reindex the catalog which is necessary for the changes made for and [alecm]
  • Made is_folderish and isStructuralFolder respect the z2 INonStructuralFolder interface as well as the z3 one. Fixes and [alecm]
  • Changed all of the action conditional expressions checking for the existence of 'member' to explicitly use 'member is None' or 'member is not None' rather than just using truth or falsehood of the member object. [rafrombrc]
  • Added a workaround for erroneous indexing behavior for words containing non-ascii characters. These were treated as word breaks so far. The code works for a site encoding of 'utf-8' now as well as proper unicode usage. This closes [hannosch]
  • Added migration to remove plone.css from portal_css. Fixes [alecm]
  • Fixed wrong usage of label tag. Added one for attribute that was missing. This closes [ender]
  • Added test that ensures the language is getting set in header. This is related to and [hannosch]
  • Fixed folder_summary_view ignored allowAnonymousViewAbout. [ender]
  • Fixed language setting in the html page header. This closes [hannosch]
  • Added a few tests for the calendar view. [hannosch]
  • Fixed the problem where you cannot select items in folder_contents in Safari. All non-draggable elements must have the 'notDraggable' CSS class now. This closes [deo]
  • Fixed handling of login_time and last_login member properties: last_login_time is now the time of the previous login and login_time is the time of the current login. This fixes [wichert]
  • Ignored the ' character when normalizing strings. This implements part of [wichert]
  • Improved test for autogenerated ids to handle content types with an underscore in their id. This fixes [wichert]
  • Using 'indexObject' instead of 'reindexObject' for CatalogTool.clearFindAndRebuild works just as well, but does not touch every object and cause a monster transaction to be committed. [stefan]
  • The list of addable types in a folder is now ordered according to the translated title and not the English title anymore. This closes [hannosch]
  • Add GenericSetup import and export steps for the portal factory. [wichert]
  • Fixed a username vs userid confusion in the member search page and bring the implementation inline with the help text. This fixes [wichert]
  • Small spelling corrections in reconfig_form. This closes [hannosch]
  • Event time and location aren't considered byline information in folder_listing anymore and thus visible if allowAnonymousViewAbout is disabled. This closes [hannosch]
  • Corrected RSS search template to show correct numbers. This closes [hannosch]
  • Modified login logic to work for sites which do not use the cookie plugin or still use GRUF. [wichert]
  • Added support for the hCalendar/hCard standard for events. This closes Thanks, Nate. [hannosch]
  • Changed to import 'Zope2' instead of 'Zope'. Could cause confusion on case-insensitive filesystems with 'zope'. [sidnei]
  • Fixed bug in folder_contents causing all links to get /folder_contents appended as well. [optilude]
  • Changed all action conditions that were simply "member" or "not:member" to be "python:member" or "python:not member" to prevent member object from being called, leading to infinite recursion in certain cases. [rafrombrc]
  • Fixed 'reindexContentObject' in so that it doesn't set the modification date to now due to some AT "convenience". [nouri]
  • Cleaned up the localrole form to support searching for either a users full name or login name; both at once does not work. [wichert]

Plone 2.5 - released June 16, 2006

  • 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 ''. I'm open to change here.

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

    Inline emphasis start-string without end-string.

    Note that these tests are only run if you have Five >= 1.4 [nouri]

  • 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

  • Added 'style_slot' to main_template for compatibility with newer CMF versions, and Five applications. [siebo]
  • 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. [sidnei]
  • 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. [sidnei]
  • 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. [sidnei]

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]