Plone 2.1.2 (Jan 20, 2006)


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

The second maintenance release in the Plone 2.1 series. Focus on bug fixes and migration improvements. Read on for further details.

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 Stefan H. Holek, Plone Solutions
Released 2006/01/20 00:00:00 Universal

Note that Plone 2.1.x requires Python 2.3 and Zope 2.7 or 2.8. While it may work for you with Python 2.4 and Zope 2.9, we neither promise it does nor take responsibility if it doesn't.

First and foremost, we have fixed a lot of migration bugs that people on Plone 2.0.x were experiencing, and improved the migration code in general.

The result is that you should find the migration to Plone 2.1.2 from Plone 2.0.5 much easier now. To help with the migration, I recently wrote up a migration guide for migrating a Plone 2.0 site to 2.1. Please read the entire migration document before you migrate; it will save you a lot of pain later. There is also a Chinese translation available.

If you tried migrating from Plone 2.0.x to 2.1 or 2.1.1 and failed, please try again with this release — migration is much improved.

Plone 2.1.2 also brings an amazing amount of bug fixes, over 300 issues were fixed for this release, and the developers have made a tremendous effort to make this release as bug-free as possible.

Summarized, this is a very stable and polished release in the 2.1 series, and makes the Plone experience as polished and consistent as you are already pampered with. And if you couldn't make the jump from 2.0 earlier, make sure you try again with this release.

On behalf of the Plone Team,

— Alexander Limi

Some improvements in Plone 2.1.2

  • All-new look for the Thumbnail (Photo Album) view.
  • A folder's display setting is now inherited from its parent on creation - so now the thumbnail view is the default if you create additional folders inside a folder with that view mode.
  • Resolved most migration issues.
  • Improved organization of CSS. Now, you can customize the public appearance of site just by deactivating or customizing the public.css and portlet.css files. This makes it much easier to skin a Plone site, and leads to less CSS code duplication. Existing CSS customizations will of course continue to work. Note: If you have already started using this technique before 2.1.2, you should review which classes have been moved. Full details are in the change log.
  • Removed a lot of deprecation warnings.
  • HTML filtering is now configurable. Although it needs a proper UI — planned for 2.1.3 — in the meantime, you can access the configuration at /portal_transforms/safe_html/manage_main.
  • Login process is streamlined and had some improvements; you are no longer redirected to the "you are now logged in" page, but rather sent directly to the page you were trying to access. Note: If you have made significant customizations of the login scripts, you should review the changes before upgrading. The particular changes performed can be inspected here.
  • We simplified (i.e. reduced) the number of portlet-related classes that you should use. Only three classes are used now - portletHeader, portletItem and portletFooter - this makes it easier to make flexible portlet layouts. Your old portlets will continue to work. We will support this old markup in the 2.1 line, but it will be deprecated faster than usual (since the code that by mistake shipped in 2.1 was not supposed to be there).
  • Tableless skin harmonized with the one using tables, minimizing duplication of code.
  • Re-instated link to previous events in the events portlet.
  • Made Plone smarter about logging out; if you are still logged in (since you're using HTTP auth), you will now be warned about this.

Notable bugs fixed

  • Plone was showing the editable border on all content items when you were logged in as a Member. This is now fixed.
  • Fixed the Internet Explorer visual bug where portlets would gradually lose their left margin and move further and further to the left the more elements were contained inside the portlet.
  • Comments were connected to the wrong object (usually the parent) in certain cases; fixed.
  • Various External Editor and WebDAV issues fixed.
  • Meta tags were not emitted correctly, fixed.

Change log

  • Events portlet was not displayed when /events had been deleted. Closes [hannosch]
  • Reinstating the "Previous Events" link in the events portlet (was removed in r7864) [limi]
  • Removing hardcoded style attributes in folder_localrole_form. This fixes #5070. [limi]
  • Removed useless CSS declaration in generated.css - the site map will never have a current item by its very nature. This fixes #5079. [limi]
  • Made Plone notify you when you are trying to log out while being logged in via HTTP (you need to close your browser to log out when using HTTP auth). This also fixes #5083. [limi]
  • Fixed the non-workflow-state-dependend coloring of items in the navigation portlet. Closes [hannosch]
  • Changed the last occurrences of transaction.commit(1) to new style transaction.savepoint(optimistic=True) calls. [hannosch]
  • Removed the last remaining occurrences of CMFCorePermissions. [hannosch]
  • Updated deprecation warnings to reflect new version numberings. [hannosch]
  • Fixed some minor spelling mistakes and i18n / xhtml format issues. [hannosch]
  • Added missing migration of PortalTransforms to activate the new, configurable safe_html transformation. [stefan]
  • Add a folderlistingFolderContents method to the PloneSite type. This allows getting folder contents with the AccessContentsInformation permission and is required by ATReferenceBrowserWidget since its changeset 5440. Fixes [wichert]
  • Remove more uses of the name CMFCorePermissions by using CMFCore.permissions throughout the code. [wichert]

RC2 - Released January 5, 2006

  • Error when trying to force migrate to 2.1.2 from 2.1.1 due to non-failsafe addition of memberdata property. [hannosch]

RC1 - Released January 4, 2006

  • Home page edit field was missing from the author edit screen, added. [limi]
  • Added missing class="documentContent" declarations in the user management screens. [limi]
  • Added View/Edit tabs to the author profile screen to make it easier to change your own details. [limi]
  • Changed the expired color to be the same as the discreet/ghosted elements, since this is a marker to show content that is no longer active, not content that needs some sort of action. [limi]
  • Moved .visualClear to the base.css - even though it's not an actual tag, all layouts break without this present, so makes sense to have it as a base-level element. [limi]
  • Added link to "Advanced Search" in the LiveSearch pulldown. [limi]
  • Moved .documentContent to public.css, this fixes #5061. [limi]
  • More CSS grouping fixes: the form elements are visible in the public view, and were moved to public.css (were previously in authoring.css) [limi]
  • Moved the accessibility CSS classes from authoring.css to public.css (the hiddenStructure classes). [limi]
  • Moved the collapsible CSS class from public.css to authoring.css, where it belongs. [limi]
  • Added background tint to inputs and textareas. [limi]
  • Fixed a bug in FactoryTool were objects weren't removed from the UID and refs catalogs after changes introduced in Archetypes 1.3.6. [hannosch]
  • Permission check had wrong spelling in prefs_groups_overview, this fixes #5055. Thanks to Bertrand Mathieu for the patch. [limi]
  • Added feedButton class for RSS feed buttons. This will be used for e.g. the news portlet once limi bothers to put them back in. [optilude]
  • Escape the group name URLs generated in the group preferences screen. [wichert]
  • Added some classes for the RTL versions of the summary view. Thanks, mohsen. [limi]
  • Fixed #4976 - Added a must_change_password property to the member data (set to 0 for existing members). [plonista]
  • Fixed various log-in problems, issues #4545, 4975, 4942, added workaround that should prevent problems in #4482 and #4688. [plonista]
  • Login UI cleanup. Now redirect directly to came_from page after login if we can verify that the user has cookies enabled via javascript. Added login_name to query string in a few places to save some typing. Only show the newbie text the first time somebody logs in. Add a login shortcut link to the new user email. Tell people to enable javascript if they don't have it enabled. [plonista]
  • Update all skin form scripts to fetch transaction_note from the correct location (Products.CMFPlone.utils) [wichert]
  • Portlet CSS simplification - portletItemSingle and portletItemLast are no longer needed. They are still supported via the deprecated.css file, but we urge people to adopt the new style (which is much simpler and more flexible) - as the inclusion of the two above classes in the 2.1 release was not intentional. [spliter, limi]
  • Fixed #5041 - plone-site icon is generated again. Thanks, optilude ;) [spliter]
  • Fixed #4961 - long Titles have been overlapping documentActions in IE. [spliter]
  • Fixed #5020 - added wrapping SPAN's in portlets' portletHeaders to allow css designers to use rounded corners techniques. [spliter]
  • Quote id in "Move item up" and "Move item down" links. [nouri]
  • Removed leading whitespace in portlet_navtree_macro css class definitions. [hannosch]
  • Fixed to respect search type blacklisting. [hannosch]
  • Fixed 4876 by making Discussion Item not have a workflow, so that you won't get strange permission inconsistencies. [optilude]
  • Fixed 3905 by making mergeResults() available TTW to allow python scripts to merge search results. [optilude]
  • All-new look for the photo album / thumbnail view. [limi]
  • Extended tests to ensure publishing of included folders is working. [hannosch]
  • Fixed #5021 - History beeing expanded was visible through the vertical table, containig event's summary [spliter]
  • Fixed #4430 - now portlets have much more simple and straightforward structure and styles. From now we use only three classes for them - portletHeader, portletItem and portletFooter. Thanks to mroch for idea. [spliter]
  • Backported some general code cleanup from the trunk. [hannosch]
  • Implemented new feature: Automatically highlight keywords when arriving from search engines. [jenner] [hannosch]
  • Made prefs_mailhost_form compatible with regular mailhost objects from both Zope 2.7 and 2.8. Starting with 2.8 MailHost has user/pwd attributes as has SecureMailHost but named slightly different. [hannosch]
  • LiveSearch did not match 8-bit search strings correctly. [hannosch]
  • Added a customised testPropertiesValidity method to the RegistrationTool in preparation of PAS. This version only verifies the email property if it is writable. [wichert]
  • Fixed #5013 - accessibility-page had a problem in CSS validation due to doubled #portal-siteactions. Now it is the class because we have more than one place for siteactions on the pages. [spliter]
  • Fixed #5017 - Unnecessary style in IEFixes.css that ruined NewsItem view in IE when having paragraph in text. [spliter]
  • Fixed Livesearch can kill a server problem by enabling livesearch only for two or more characters long search strings. [hannosch]
  • Fixed two problems with delete action in global_contentmenu. Cannot cancel deletes in IE 6 (#4772) and JS pop-up shows wrong type when deleting default view (#4990). [hannosch]
  • Bug in portlet_navigation - navTreeLevel1 was never set. [hannosch]
  • Group is confused with identical user when trying to add as a subgroup. [hannosch] [csenger]
  • Fixed weak-ass tests that failed to catch broken action providers. Also fixed ActionsTool so it ignores broken providers. [stefan]
  • Icon for links was missing padding in folder_listing. Fixes #4721. [limi]
  • Meta tags were not being emitted correctly. This fixes #4810. [limi]
  • Changed all calls to getParentNode() to be aq_inner.getParentNode() to make it work better with Five. This fixes #4705. [limi]
  • Review history was not valid XHTML, a block-level element was nested inside an inline element. This fixes #4926 and #4586 (hopefully, seems to work in my local testing). [limi]
  • Made the "click here to see full size image" and size text on images invisible when printing the image. This fixes #4698. [limi]
  • Harmonized table-less and table-based skin, the former was using a special getBodyTagClass which has an existing equvalent in the normal skin anyway. Deprecated the special file used for this, it will disappear in Plone 2.5. This fixes #3915. [limi]
  • Inserted missing conditional check for the location of an event - no longer shows the location field if it has no value. [limi]
  • Fixed #4695 - Comments were connected to the wrong object. [morphex]
  • Fixed #4998 - Russian characters were not supported by normalizeUnicode. Thanks to Xenru. [stefan]
  • Fixed the Internet Explorer visual bug where portlets would gradually lose their left margin and move further and further to the left the more elements were contained inside the portlet. [limi]
  • Fixed #4996 - had duplicated calls for document_actions macros. [spliter]
  • Plone was showing the editable border on all content items when you were logged in as a Member. This was fixed by removing the check for Copy or Move in the code that determines whether the editable border should be rendered. [limi]
  • Fixed #2295 - text on printing was cropped on the right in all browsers when the tableless layout is used. [spliter]
  • external_edit link wouldn't work for files with spaces in name due to use of url_quote_plus. The correct function to use is url_quote. [sidnei]
  • Fixed #4859 - strftime error in [hannosch]
  • Fixed #3268 and #3746 - some status messages included all changed objects which could break IE as it supports only a limited URL length. [hannosch]
  • Replacing all references to "portal" in the UI with "site" with same consequences as outlined below. [limi]
  • Replacing "Member" with "User" everywhere in the UI (except in words like "membership"). Hanno has been notified, and this should not have any impact for i18n people, but they should be notified in case they made a distinction between member and user in their translations. I know most translations I have seen didn't. [limi]
  • Added CMFPlone.utils._unrestricted_rename() by copying from ATCT migrations. _unrestricted_rename() allows to rename objects without going through _verifyObjectPaste(). [stefan]
  • Fixed #4657 and #4829 - wrong icon path in livesearch. [hannosch]
  • Added PIL version to control panel version overview as suggested in #4775. [hannosch]
  • Fixed #4803 and #4943 by only deleting existing text indexes when the lexicon is missing (e.g. when we actually have a new catalog being created). [alecm]
  • Fixed #4898 - migrations would break if the Plone Site was configured to not allow all content types. [stefan]
  • Fixed #4951 by overriding the sl global define in [alecm]
  • Updated favorites portlet to the new portlet style. [ctheune]
  • Fixed #4800 - hardcoded review_state variable breaks custom workflows. [hannosch]
  • Fixed #4938 - member portraits were referenced using the username instead of the member id in a few places in the membership tool. [wichert]
  • Combined the support for publishing subobjects in content_status_history.cpt with the support for bulk publishing. The old behaviour showed, but didn't use, the checkbox for publishing subobjects when you published a folder directly. [ctheune]
  • Send correct password in the registry notification mail even if the stored password are encrypted. [panjunyong]
  • Updated to comply with WebDAV changes in Archetypes 1.3.6. [hannosch]
  • Fix unit test relying on user folder storing passwords in plain text. This isn't anymore the default for Zope 2.9. Changed to test authenticate. [hannosch]
  • Some code cleanup, mainly removal of unused imports. [hannosch]
  • Fixed #4894 - Missing closing quote in LiveSearch pop-up. [stefan]
  • Send new generated plain password via email directly when reset password, but not the one stored in userfolder since it could be encypted. Also use getProperty to retrieve email address for better LDAP integration. [panjunyong]
  • Made plonifyAction be called with an existing default_tab parameter. [deo]
  • Changed to use full URL instead of content path when computing whether or not a portal_tab action is being viewed. This causes portal tabs to behave correctly when the action refers to a specific template. [rafrombrc]
  • Removed skins/plone_3rdParty/CMFTopic from filesystem and written migration to remove it from all skins. [hannosch] [limi]
  • Removed unused script. [hannosch]
  • Removed some BBB code for Zope 2.6 (try/except on DateTimeError). [hannosch]
  • Added accessibility instructions for Konqueror. [limi]
  • Remove so called ie7 from third party skins and all references to it. [limi] [hannosch]
  • Make Plone 2.1 degrade more gracefully on a non-migrated 2.0 site (special fixes for [sidnei]
  • Fixed #4788 - Missing i18n for livesearch no matching results found. [hannosch]
  • Fixed small bug in searching users from prefs_users_overview. In case of searchstring field contained something, click to Find all does not find all users, but only users specified by the search string. [naro]
  • Changed so that it honors the typesUseViewActionInListings setting in site_properties for ALL types (was only working for non-folderish types before). [rafrombrc]