Plone 3.1 (May 02, 2008)


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

The 3.1 release is a feature upgrade release for Plone 3.0. It introduces new features and polishes existing features but does not include any major changes: all products that work with Plone 3.0 should also work in Plone 3.1. The upgrade from Plone 3.0 is simple and non-invasive, guaranteeing a smooth upgrade experience.

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 Wichert Akkerman
Released 2008/04/22 00:00:00 Universal


Feature enhancements in this release

The following features are associated with this release:

Include more/improved portlets
Plone 3.1 should include a few more "out of the box" portlets.
Support product dependencies
The next GenericSetup release has several features that improve our product installation story. Most noticably it allows for profile dependencies, which we can use to support dependencies between products.
Kupu formlib widget
At the moment, formlib forms (including edit forms) cannot use the Kupu visual editor. We need a custom widget for this.
Support inline validation and editing for formlib forms
We already have KSS support for inline validation of the edit forms of Archetypes edit forms. We should extend this to work on any formlib-based form - including add forms, edit forms and standalone forms.
Manage portlet assignments with GenericSetup
Currently, portlets can only be assigned using Python code. There should be a GenericSetup syntax for this.
Manage content rules using GenericSetup
It should be possible to create and assign content rules using GenericSetup
Flexibility Associating Portlet Types and Portlet Managers
In order to determine if a portlet type can be added to a specific column a.k.a portlet manager, Plone looks up whether that column provides a single interface specified by the portlet type. This proposal allows registering a portlet type for multiple interfaces, in order to give more flexibility where it can be added.
Allow Custom Portlet Managers
Change GenericSetup handling of portlet managers to allow for custom portlet managers, not only portlet managers that use the default class.
Adapter-Based Local Role Lookup
borg.localrole should become a part of the Plone core
Add buildout to Unified Installer
The Unified Installer should provide a buildout-based framework to make it easier to manage product and egg additions.
Use jQuery Javascript Library
Switch to jQuery for all of Plones Javascripts.
Prepare for better Syndication
There are some changes necessary to fully enable a better syndication (RSS) implementation.
Include new KSS versions
Include new versions of kss.core, and into 3.1
Use Adaptation for Workflow Assignment
There is still one major area in which the workflow is difficult to customize: workflow assignment by a mechanism other than portal_type. This proposal attempts to address this issue by using adaptation to determine workflow assignment.
Increase Restrictions, and Ability to Change, Addable Portlet Types by Interface
Restrict certain portlets to the dashboard and left/right columns, which are currently addable to any portlet managers. Require portlets to specify interfaces of portlet managers they can be added to, rather than allowing them to be added anywhere if they do not specify an interface.
Improve browser layer support
Add plone.browserlayer to Plone core.
CSRF protection framework
This PLIP contains two parts: infrastructure to Plone to manage site-wide secrets that can be used for various purposes and adding a system to authenticate form posts, prevent abuse from attackers.

Change log

Changes for 3.1

  • Fix links which had a leading space
  • Add CSRF protection to user forms and control panel pages.
  • Also lowercase titles containing a dot. Fixes ticket 7961.
  • Display of add on products README file could generate UnicodeDecodeError when the README file included non-ascii characters. Fixes ticket 7524.
  • Always show errors happening during product installation. Fixes ticket 7536.
  • Correct uninstall handling for products installed through GS profiles.
  • Improve handling of products with both a GenericSetup extension profile and an Install external method. Show the title of the profile instead of the product name.
  • Switched mo file cache to store files under the client home instead of relying on the var folder to be present inside the instance home. This should fix permission errors for effective-user installs.
  • Added support for a new environment variable called PTS_LANGUAGES. If this variable is specified and contains a comma separated list of language codes only those languages will be registered in the Zope instance. This can help in reducing the memory footprint and number of ZODB objects generated by PTS. For locales folders this also avoids compiling po files to mo files
  • Importing content rules from a GenericSetup profile twice no longer duplicates the rules. Fixes ticket 8027.
  • Fix the navigation tree: ensure that the 'currentParent' marker is not set for items that have a path that is a substring of the true path. Fixes ticket 7942.
  • Add options to purge portlet assignemnts through a GenericSetup profile.
  • Update the RSS portlet to handle feeds without update timestamps.
  • Fix site error when submitting an OpenID login form without entering an identify URL. Fixes ticket 7176.

Updated packages and products

  • Products.CMFDiffTool 0.3.6
  • Products.CMFPlacefulWorkflow 1.3.1
  • Products.CMFQuickInstaller 2.1.3
  • Products.PlacelessTranslationService 1.4.10
  • Products.PloneTranslations 3.1.1
  • archetypes.kss
  • borg.localrole 2.0.0
  • kss.core
  • kss.demo
  • 1.1.0
  • 1.1.0
  • 1.1
  • 1.1
  • 1.1.0
  • 1.0.4
  • 1.1.0
  • 1.4
  • 1.1.0
  • 1.0.8
  • 1.0.3
  • 1.1.0
  • 1.1.0
  • plone.browserlayer 1.0.0
  • plone.contentrules 1.1.0
  • plone.i18n 1.0.4
  • plone.keyring 1.0
  • plone.memoize 1.0.4
  • plone.openid 1.1
  • plone.portlet.collection 1.1.0
  • plone.portlet.static 1.1.0
  • plone.portlets 1.1.0
  • plone.protect 1.0

Changes for 3.1rc1

  • Improve handling of users without passwords in the PlonePAS migration.
  • Add metadata.xml to more GenericSetup profiles to fix deprecation warnings.
  • Fix 'enable self registration' option form the security control panel. This fixes 7690.
  • Correct encoding of resource ids in portal_css, portal_javascripts and portal_kss. This fixes 7482.
  • Add support for Z3 templates to portal_css, portal_javascripts and portal_kss.
  • Fix ResourceRegistries API to raise ValueError instead of NotFound, which will trigger special behaviour in the publisher. This fixes strange 'not found' errors during (broken) product installation.
  • Update folder contents view to only show batch actions when batching is needed.
  • Fix creation of nested divs when reordering items in a folder using drag & drop.
  • Add GenericSetup export/import support to CMFPlacefulWorkflow
  • Make type selection for placeful workflows more userfriendly by only showing more reasonable content types.
  • Include placeful workflows for the default Plone workflows.
  • Rename to plone.protect.
  • Do not submit submit values for disabled input fields in a form.
  • Use refreshViewlet instead of deprecated macroContent. This fixes 7879.
  • Fix KSS javascript syntax error for Firefox 3.
  • kupu improvements:
    • allow selection of image styles when adding an image instead of only when editing an image
    • fix tickets 6915, 7409, 7804, 7893, 7916, 7939.
  • Fix internal error when viewing portal_setup in the ZMI in a newly created site.
  • Fix site error for collections. This fixes 7937.
  • Improved i18n support for many templates and GenericSetup profiles.

Updated packages and products

  • Products.CMFDynamicViewFTI 3.0.2
  • Products.CMFEditions 1.1.6
  • Products.CMFFormController 2.1.2
  • Products.CMFPlacefulWorkflow 1.3.0rc4
  • Products.GenericSetup 1.4.0
  • Products.PasswordResetTool 1.1
  • Products.PlacelessTranslationService 1.4.9
  • Products.PloneLanguageTool 2.0.3
  • Products.PlonePAS 3.4
  • Products.ResourceRegistries 1.4.2
  • Products.kupu 1.4.9
  • archetypes.kss 1.4-rc1
  • kss.core 1.4-rc1
  • kss.demo 1.4-rc1
  • 1.1.1
  • 1.0.5
  • 1.0.3
  • 1.1rc1
  • 1.1rc1
  • 1.4-rc1
  • 1.0.7
  • 1.1rc1
  • plone.portlet.collection 1.1rc1
  • plone.portlet.static 1.1rc1
  • plone.portlet.static 1.1rc1
  • plone.portlets 1.1rc1

Changes for 3.1beta1

  • Improve handling sites without left or rightslots properties in the quick installer.
  • Add an to the folder contents view to show all items in a folder, without batching. This makes it possible to reorder items across batching boundaries.
  • Make the portletRenderer zcml directive easier to use for zcml overrides. This fixes 7703.
  • Correctly set the 'enable live search' setting when creating a search portlet. This fixes 7388.
  • Correctly set the 'include top' when creating navigation portlets. This fixes 7798.
  • Fix display menu breaking on content which is non-ISelectableBrowserDefault aware content, such as ZWiki pages. This fixes 7226.
  • Check the name of the OpenID login portlet to 'OpenID Login'. This fixes 7924.
  • Fix calculation of the default fieldset when editing Archetypes objects where the default schemata only contained invisible fields.
  • Correct URL for the 'go here if you want to edit the folder instead of the default view' message shown when editing the default page of a folder. This fixes 7777.
  • Fix deprecation warnings for missing namespace declarations in packages.
  • Fix for a view customization for rare cases of missing information about the zcml file a registration was made in. This fixes 7918.

Updated packages and products

  • Archetypes 1.5.7
  • Products.CMFEditions 1.1.5
  • Products.CMFQuickInstaller 2.1
  • Products.NuPlone 1.0b1
  • Products.PlonePAS 3.3
  • archetypes.kss 1.4-alpha1
  • kss.core 1.4-alpha1
  • kss.demo 1.4-alpha1
  • 1.1.0
  • 1.0.7
  • 1.1.0a1
  • 1.0.2
  • 1.1.0a1
  • 1.0.7
  • 1.4-alpha1
  • 1.1.0a1
  • 1.0.6
  • 1.0.2
  • 1.1.0a1
  • 1.0b1
  • 1.0.7
  • 1.2
  • 1.0.4
  • 1.0.7
  • plone.browserlayer 1.0rc3
  • plone.contentrules 1.1.0a1
  • plone.keyring 1.0b1
  • plone.portlet.collection 1.0b1
  • plone.portlet.static 1.1.10a1
  • plone.portlets 1.1.0a1