Plone 2.1 (Sep 06, 2005)

Warning

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

This release of Plone focuses on Archetypes-based default content types, user interface improvements, speed improvements and new navigation tree/site map.

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

For installation instructions go to: http://docs.plone.org/manage/installing.

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 Holek, Plone Solutions
Released 2005/09/06 00:00:00 Universal

Also included in the release is support for right-to-left (RTL) languages like Arabic and Hebrew, mobile device support, full screen mode and many other improvements.

 

Change log

Plone 2.1 - Plaid - Released September 6, 2005

  • Added deprecation warning for DTML in CSS. We will most likely get rid of this in Plone 2.2 or 2.3 to reduce complexity. If we are going to support variables in CSS, ResourceRegistries should handle it, not DTML. [limi]
  • Fixed http://members.plone.org/collector/4544/ by using aq_explicit instead of aq_base when getting Title for pretty_title_or_id. This means that objects which rely on acquisition in their Title() methods will need to do so explicitly, though getToolByName and aq_parent will work without issue. [alecm]
  • A bug that caused the month display to use the day number was fixed. Thanks to Mohsen Moeeni for finding this bug. [longsleep]
  • Fixed http://members.plone.org/collector/4638 by making the workflow title methods more fault tolerant. [alecm]
  • Fixed http://plone.org/collector/4624 - document byline on events were not translated [hannosch]
  • Fixed http://members.plone.org/collector/4635 - LiveSearch background did not apply the IE fix if there was no result set. Thanks Wichert. [limi]
  • Fixed http://members.plone.org/collector/4612 by granting the 'View Groups' permission to all Members at the portal root. [alecm]
  • Fixed http://members.plone.org/collector/4589 by adding some tal:conditions in a few templates. [alecm]
  • Reordered the object button actions. [alecm]
  • Removed the printing of link addresses along with the link text since it triggers a lot of display-related bugs when printing certain types of documents. Left the code in there, so just uncomment it if you want the feature back. Too painful for the generic use case, though. [limi]
  • Removed the "blah's Home" title for the member folder default title. It doesn't make sense in multilingual sites, and doesn't add any useful information. The home folder now has a title that is simply the username. [limi]
  • Enabled editable border for the Members folder. [limi]
  • Provide compatibility with Five 1.1 regarding i18n. Five's TranslationService has no unicode aware utranslate method, so we have to force a fallback to PTS or everything using utranslate including ulocalized_time won't get translated. [hannosch]
  • Provided descriptive titles for translation_service, mimetypes_registry, and portal_transforms tools. [stefan]
  • Login and saving of login times now also works if members do not have the "Set own properties" permission. [stefan]
  • Made sure that if you have an INonStructuralFolder inside another, you don't get an add menu for the parent non-structural folder. [optilude]
  • Made sure the cmf_legacy skin layer comes last, after all the Plone layers. [stefan]
  • Added Kupu image alignment classes. Thanks, Nate. [limi]
  • Fixed various spacing issues in discussions rendering. [stefan]
  • In skins/plone_login/logout.cpy, $-quoted a string that was being taken from REQUEST and inserted into a TALES 'string:' expression. This REQUEST string could be manipulated by the browser. [rochael]
  • Fixed http://plone.org/collector/4530 - type name not translated if only one type is shown in global_contentmenu. [hannosch]
  • Adding some padding to the "display" menu header if the menu is disabled because of an index_html document. Closes http://plone.org/collector/4534 [optilude]
  • Made Summary View the default view for the news topic. [alecm]
  • Fixed http://plone.org/collector/4499 - removed vestigial failsafe_login.pt.metadata [hannosch]
  • Fixed http://plone.org/collector/4484 - 'My Preferences' action title is 'Preferences' in 2.1 [hannosch]

RC3 - Released August 18, 2005

  • Changed the copy action to be restricted by 'View' as 'Copy or Move' is generally available to anonymous even when 'View' is not. [alecm]
  • Fixed http://plone.org/collector/4502 by reverting to the old nasty deprecated _usage method of doing things. This should be cleaned up once zope 2.7.8/2.8.2 comes out and make_query is fixed. queryCatalog automatically converts the _usage style queries into proper dict based queries, but it's still bad form. [alecm]
  • At the request of the i18n team I renamed Tile View to Summary View, since this is easier to translate. If you are running an SVN checkout between RC2 and RC3, please re-run migrations from RC2 to get the right template name and reference. [limi]
  • Added explicit permission checks to prefs_users_overview and prefs_groups_overview to prevent unnecessary exposure of sensitive roles and groups security information. (see http://plone.org/collector/4491) [rafrombrc]
  • Added 'raiseUnauthorized' python script to plone_scripts as a convenience for Unauthorized exceptions to be raised from within page templates. [rafrombrc]
  • Fixed http://plone.org/collector/4449 by removing direct attribute access from file_view template. [alecm]
  • Made the navtree respect the new NonStructuralFolderInterface by checking is_folderish to determine if children should be shown. [alecm]
  • Moved concatenation of actions and content to createTopLevelTabs. The translation of action titles is done there as well now. [fschulze]
  • Fixed several problems in migration of ResourceRegistries. [fschulze]
  • Made news topic sort on effective date, reversed. [alecm]
  • Moved the news and events topics to the toplevel and removed the folders. If the folders had content they were renamed to old_news/events. [alecm]
  • Made all object_buttons act on parent folder when the current object is the default page. Made paste target respect the NonStructuralFolder declaration. Made the delete alert message stronger for folders and default pages in folders. [alecm]
  • Added marker interface INonStructuralFolder which allows a type to declare that it is a folder for implementation purposes only and should not be treated as such by Plone's tab generation and other is_folderish metadata. This is necessary to permit folderish-as-implementation types to not generate portal tabs at the portal root or link to folder_contents from a parent folder folder_contents, as well as ensure the correct functioning of the contents tab (displayContentsTab.py) [optilude]
  • Fixed http://plone.org/collector/4361 - OverflowError when converting to Date(Range)Indexes. [stefan]
  • Fixed http://plone.org/collector/4366 - The envelope-from for send-to and comments is now set to the site admin's email ID rather than the apparent From ID entered on the form. [bitranch]
  • Fixed http://plone.org/collector/4370 - duplicate 'sharing' tab on portal root. [optilude]
  • Several fixes and workarounds for right to left rendering. [fschulze]
  • Fix http://plone.org/collector/4433 Changing workflow state in review_history gives KeyError: 'comments' [hannosch]
  • Fix http://plone.org/collector/4456 wrong title on columns.css [hannosch]
  • Added past events sub-topic events_topic/previous, and restricted the primary events topic to show only upcoming events. [alecm]
  • re-added javascript_head_slot and css_head_slot to prefs_main_template, so that preference templates can add javascript and css like other templates can again. [elvix]
  • Uncluttered the 'language' mess in the templates define. [deo]

RC2 - Released August 10, 2005

  • Renamed PloneTool.getOwnerId() to .getOwnerName, and made it return the username instead of the userid, which is importand for user sources where the username != userid. [rochael]
  • Removed empty div/li in navigation tree caused by parentMetaTypesNotToQuery [panjunyong]
  • Only show search syndication when site syndication is enabled. [alecm]
  • Optimize the portlet_calendar again for some speed. [hannosch]
  • Don't expand parentMetaTypesNotToQuery item in sitemap. Need more tuning. [panjunyong]
  • Enable syndication in new plone instances and all topics by default. Turn off syndication tab. Rename rss action. [alecm]
  • Fixed http://plone.org/collector/4407 by making folder_contents link to folder_contents for all folderish types. [alecm]
  • Fixed http://plone.org/collector/4376 untranslated 'add type' buttons. [hannosch]
  • Don't clear css and javascript registries on migration from 2.0.5. [fschulze]
  • Evaluate queryCatalog in the catalog context in getFolderContents, so that Smart Folders (which override queryCatalog for some silly reason) can still use it. [alecm]
  • Added workaround for http://plone.org/collector/4372 which is due to a strange behavior in the Firefox alpha. Thanks to jenner for hunting this down and contributing the fix. [alecm]
  • Addresses http://plone.org/collector/2029. Now support through UI for grouping groups. UI does not allow a group to be added to itself, or for a member (group or user) of a subgroup to be added to a group. Some text changed to reflect changes. [gerry_kirk]
  • Changed View permission restrictions on folder_constraintypes_form and ownership_form. Requiring Owner restricts access to users with Owner role on the template itself, not the context it is called in. [alecm]
  • Made search.pt respect typesUseViewActionInListings. Fixes part of http://plone.org/collector/4373 [alecm]
  • Made syndication use the max_items property of the instance if set, not the tool. [alecm]
  • Added ITranslatable support to getDefaultPage. [deo]
  • Added testMissingPageIgnored to verify inexistent ids in default_page. Fixed a missing object in testFixFolderlistingActionNoTool. [deo]
  • Fixed http://plone.org/collector/4382 by removing unnecessary getUser call. [alecm]
  • Fixed http://plone.org/collector/4381 by using getProperty to access listed and last_login_time properties in searchForMembers. [alecm]
  • Fixed bug trigerred when reindexing order in a folder with improperly deleted content (i.e. when brain.getObject() returns None in plone_utils.reindexOnReorder(folder)). [alecm]
  • Readded current_page_url to global_defines for backwards compatibility. [alecm]
  • Removed unnecessary and lazy uses of global in tal expressions. [alecm]
  • Fixed bug: can't view a page with unauthoried related items. [panjunyong]
  • document_relateditems are sense of typesUseViewActionInListings now. [panjunyong]
  • Fixed bug: setting local role acquization works wrong with non-folderish content. [panjunyong]
  • Removed reindex method from CatalogTool.py since it is redundant and as of CMF 1.5.3 differs in signature from the base type's method. [geoffd]
  • Made language selector visible even if no document actions are defined for the current user [jok2]
  • Don't require a full name for the site feedback in the contact-info page, as the full name is not required for members. [jok2]

RC1 - Released August 1, 2005

  • Added log.py module and made Plone use only one style of logging (zLOG). There is no logger named 'Plone' configured anywhere, so we better not pretend there was. [stefan]
  • Made history table use transition titles instead of ids (requires new portal_workflow method). Also localized dates in that table, and removed duplication of history from content_status_history. [alecm]
  • Commented out markup code for rounded corners in the portlets. The tags like '<span class="portletTopLeft" />' inside the '<dl>' were destroying the XHTML validation because only '<dd>' and '<dt>' are allowed in a definition list. [tiran]
  • Fixed issue with dashed borders in IE, and applied IEFixes which was going unused. [alecm]
  • Simplified creator checking in folder_listing, as the usage of creators made no sense. Let's just use Creator and be dones with it. [alecm]
  • Making the "display" menu display the default-page if you are looking directly at a folder that has a default-page (e.g. its contents view) [optilude]
  • Fixing content-type icon display in folder listing, recent portlet etc. [spliter]
  • Fixed bottom of selected tab in IE. [spliter]
  • Added new permission Allow Sendto to Plone. The sendto method, script and action are protected by the new permission. Change the permission in the portal root to prevent certain users like Anonymous to use or abuse the feature. [tiran]
  • Fixed issue that caused Plone/AT Folders contained in a BaseBTreeFolder subclass to inheirt the parent index_html ComputedAttribute and attempt to use that as the default view resulting in a 404. Thanks to tim2p for finding this. [alecm]
  • Fixed http://plone.org/collector/4351 by not relying on getTypeInfo() being available on the object. [optilude]
  • Fixed http://plone.org/collector/3906 - header now shows correct mouse pointer cursor when table is sortable. [hannosch]
  • Added migration to add new view templates to folderish types (including Smart Folders). [alecm, limi]
  • Made folder_listing and folder_contents suitable for use as Smart Folder views. [alecm]
  • Fixed http://plone.org/collector/2771 (4350) using the new isURLInPortal method, which now also returns true on relative URLs. [alecm]
  • Added default_page_types and removed non_default_page_types. This means That third party-content types that want to be used as default pages need to be added to the list, but it also means that folderish types which generally don't make any sense as default pages are not allowed by default. Also, made the default page selection form show the currently selected item. [alecm]
  • Added CMF types to types_not_searched. [alecm]
  • Made portlet_recent use types_not_searched to limit returned types. [alecm]
  • Made search form use workflow state titles, and multiple columns for types list. [alecm]
  • Fixed http://plone.org/collector/4345 by checking the flag. [alecm]
  • .personal folders will no longer be created. Fixed unit tests which assumed that .personal would be around. [alecm]
  • Closed bug http://plone.org/collector/4344 by limiting the number of items that can be added to the portal status message string when deleting items. This is really more of a usability fix, since we don't actually check the length of the titles; the full fix for the issue will appear when we merge the improved status message handling. [optilude]
  • Fixed http://plone.org/collector/4346 by using the suggested fix. Thanks Tim Hicks. [alecm]
  • Fixed plone_javascript_variables.dtml and plone_scripts/translate.py to cope with i18n strings including the ' char. [gotcha]
  • Added language to personalize form and put prefs_user_details back in sync with personalize. [alecm]
  • Fixed http://plone.org/collector/1490 by ensuring that sendto only works when the action is visible. [alecm]
  • Added an immediateLogout method to MembershipTool.py that resets the current security context and logs the current user out immediately. Used in logout.py [geoffd]
  • Added main macros to templates which may be used as default content views so that they play nicely with discussion_reply_form. [alecm]
  • Fixed http://plone.org/collector/4333 prefs_user_manage now uses portal_membership.deleteMembers instead of acting directly on acl_users. On deletion local roles are now removed, but the member area is preserved. [alecm]
  • Added the last missing accesskey to search_form and put in a link below the search box. [hannosch]
  • Reenabled visible_ids memberdata property. This field will determine the visiblity of ids on a member by member basis, only if the sitewide property is enabled. [alecm]
  • Fixed author home page link in author.pt [panjunyong]
  • Change order of folderlisting/view default action determination to fix discussion visibility on folderish AT types. [alecm]
  • Added javascript handler to form submit buttons which warns when the button gets clicked more than once. [fschulze]
  • Fleshed out the contact-info page as a form controller page, making it possible to send feedback as anonymous user and as member (without filling e-mail address and fullname). Also displays the portal description. [jok2]
  • Fixed http://plone.org/collector/4335 added a method to URLTool to determine whther a URL is local to the portal. This will be moved into CMFCore ASAP, pending write access. [alecm]
  • Hooked up navtree wf config to the configlet, needs serious UI tweaking. Added a method to the WorkflowTool to list all wf states in the portal. Added a python script that converts a list into a list of sublists for making columns. [alecm]
  • Added properties wf_states_to_show, and enable_wf_state_filtering to navtree_properties. These filter the navtree/sitemap/portal tabs results by workflow state. [alecm]
  • Adding navigation control panel, and fixing a possible Search control panel migration problem in the process. [optilude, limi]
  • Making the livesearch result truncate title and id, as offered by jeffk in http://plone.org/collector/4329. Thanks for the patch! [optilude]
  • Fixed http://plone.org/collector/4324 need to ensure we are passing strings to utranslate. [alecm]
  • Added CMFUid tools. CMF 1.5 has a new core product CMFUid which is used to assign and query uids mostly like Archetypes. Products designed for CMF 1.5 might depend on the tools. [tiran]
  • Fixed HEAD requests for folders. The browserDefault code mustn't look up the template for HEAD requests. Instead it should invoke the HEAD() api method defined in webdav.Collection. This fixes an ATCT bug and http://plone.org/collector/4290. [tiran]
  • Made check_id.py prevent method aliases like 'sharing' and 'edit' as object ids. This fixes http://plone.org/collector/4331. [optilude]
  • Implemented accesskeys as per accessibility-info page definition. [hannosch]
  • Made the portal root use the /edit and /sharing method aliases for its 'edit' and 'sharing' tabs/actions. [optilude]
  • Made the 'view' method aliases point to '(selected layout)' instead of '(default view)'. This assures consistency with previous behaviour, so that /view at the end of a URL always gets the item itself, ignoring any default-page that may be set. Note that the 'view' action still points to 'string:${object_url}', so that the 'view' tab, as well as the '(Default)' target, still get '(dynamic view)' (and thus default pages) for types other than File and Image. [optilude]
  • Fixed http://plone.org/collector/4327. The live search now honours typeUseViewActionInListings. [optilude]
  • Fixed issue http://plone.org/collector/2669. Also made the group prefs suck a bit less. These pages really have to be taken care of in the next release. I also disabled the group search feature in prefs_groups_overview because it made things much worse. It's no use to have a search box that doesn't search. So, now groups are shown using their title and descriptions for tooltips. folder_localrole_form also uses this info. This requires a GRUF update!! [ender]
  • Changed add to favorites icon in document actions to the appropriate icon. Before it used the site icon while the portal_type uses a heart. They must match and now they do. [ender]
  • Applied patch from http://plone.org/collector/4205. Better check for existance of member folders. Thanks to Tiran. [ender]
  • Made the blacklisting control in the search control panel act as a whitelist. That is, new types appear as selected by default and the backing store is a blacklist, but the user selects which type to be searched, not which types not to be searched, which is easier on the mind. [optilude]
  • Created an Actions drop-down menu with cut, copy, paste and delete in there. I know the label is not optimal but I think this is nicer and cleaner. [ender]
  • Fixed http://plone.org/collector/4083. <div class="visualClear"><!-- --></div> to remove whitespace in IE. [ender]
  • Fixing http://plone.org/collector/4300 by disabling the content menu when the object is in the factory. PLIP 24 form unload protection takes care of the other cases. [optilude]
  • Added link to ownership_form on the sharing page. Changed warning text a bit for when you visit this page for non-contentish items so it shows the title of the portal_type and not the id. The sharing page really needs to be refactored in the next release. [ender]
  • Making prefs_group_members a form controller template, which should be somewhat safer from reported navigation and persistence problems, and makes it possible to replicate the no-search-on-page-load behaviour already added to prefs_users_overview. Group overview pages still not converted, mainly because these templates are a mess. :-( [optilude]
  • Making the images in document_actions.pt have their height and width set with CSS instead of attributes on the image tag. This closes http://plone.org/collector/3823, which advocated using the image's own height and width. This approach was deemed unnecessary, since we probably want them all to be consistent, and having to traverse to each image is an unnecessary performance hit for something that'll stay 16x16 almost always. :) [optilude]
  • Fixed http://plone.org/collector/4302 using jenner's template with a few simplifications, and some changes to folder_contents to make reusability even easier. [alecm]
  • Finished http://plone.org/collector/1805 without any catalog metadata even. Added a method to WorkflowTool that retrieves a state title given a state id and a portal_type. As a result it can be used for brains and objects alike. [alecm]
  • Making member overview preference page not perform a full member search by default, but adding a "Find all" button to find all members if you need this listing. This fixes http://plone.org/collector/2530. The bug also mentions that we could have "Find all" the default behaviour when there are sufficiently few members. However, there has been no followup on how we can efficiently count the number of members, so this is still an open feature request. [optilude]
  • Adding display of currently selected default-page to "display" menu and cleaning up markup a bit. Still some CSS work to be done before this is fully OK. [optilude]
  • All icons for content types are now displayed using CSS - this closes http://plone.org/collector/3138
  • Removed all references to getStateClassName() as this was just a makeshift solution that was used before we got the normalizeString() method in PloneTool. [limi]
  • Hooked up the new HTML-formatted and improved start page [limi]
  • Reverted change to normalizeString as Archetypes relied on it in the title to id autogeneration code. [hannosch]
  • Fixed http://plone.org/collector/3242 added And/Or search option to Subject field on search_form. [alecm]
  • Fixed http://plone.org/collector/3211 by updating the permission on PloneTool.setMemberProperties, the other permissions are fixed in CMF 1.5. [alecm]
  • Fixed http://plone.org/collector/4242 by updating test. [alecm]
  • Fixed inappropriate condition on folder_constraintypes_form. [alecm]
  • Made tableless skin use showEditableBorder, fixed http://plone.org/collector/4291. [alecm]
  • Fixed failing unit tests due to cleanupFilename removal. atct's base.py _setATCTFileContent method relied on getting a false value back from normalizeString when called with None. [hannosch]
  • Removed text size actions, moved Site Setup action to site_actions, and added contact and accessibility site_actions. [alecm]
  • Added in some more character mappings to UnicodeNormalizer that were definied in ATCT's now removed cleanupFilename method [hannosch]
  • Remove accesskeys as they are interfering with screen reader shortcuts This fixes http://plone.org/collector/3535 [hannosch]
  • Migrated to some nicer workflow state titles. [alecm]
  • Fixed issues related to External Editor action (2939, 3008, 4176), using a script from glenfant. The icon appears only when both 'Modify portal contents' and 'Use external editor' are available, the user has the a member property set, and the object supports WebDAV editing/locking, and isn't locked. [alecm]
  • Partial fix for http://plone.org/collector/4272 some missing i18n markup [hannosch]
  • Added 'Large Plone Folder' to parentMetaTypesNotToQuey navtree_property. This ensures that large folders will not display their contents in the navtree. [alecm]
  • Fixed http://plone.org/collector/4251. ulocalized_time() fetches all DateTime errors and logs them. [tiran]
  • Took care of http://plone.org/collector/4224 by disabling the ZMI ordering interface for the Plone Site object. [stefan]
  • Removed PropertyManagedBrowserDefault, and mane the portal root support BrowserDefaultMixin as implemented by CMFDynamicViewFTI. [alecm]
  • Fixed http://plone.org/collector/4216 - migration would add 'contents' action more than once. [stefan]
  • Changed category of 'view' and 'edit' actions on 'Plone Site' to 'object'. [alecm]
  • Implemented limi's suggestion for contents tab. [alecm]
  • Fixed discussion_reply_form to work with CMFDynamicViewFTI stuff. [alecm]
  • Added dummy savepoint method to transaction_.py [tiran]
  • Resurrection of old edit template for CMF content types. It is possible to edit and view old style content types again. These templates should be removed in 2.2. [tiran]
  • Added pretty_title_or_id method to PloneTool which returns the Title or non-autogenerated id, otherwise it returns a translatable default string (or a given default parameter). Made plone use this method (or the helper python script that points to it) everywhere. Currently this incurrs a skin lookup and script call for nearly every content item listed (portlets, listings, etc.). This method could easily be added to catalog metadata if the penalty is too large, with no need to change the templates. However, doing so would loose the translatability of the default string. Something like 'here/pretty_title_or_id|empty_title' won't work as '|' only triggers on an exception, so a python expression would be needed to maintain translatability. [alecm]
  • Added isIDAutogenerated method to PloneTool and deprecated the python script. This method is normally used from FS code and so it belongs in FS code. [alecm]

Beta1 - Released July 7, 2005

  • PloneFolderBase (and hence LargePloneFolder) no longer inherits SkinnedFolder, as SkinnedFolder has OrderSupport in CMF 1.5. [alecm]

  • Moved reindexOnReorder stuff into PloneTool, and use it from the folder_position script. This way non-ATCT/PloneFolder types get proper reordering in the GUI. Order reindex on rename is still not available for custom types. [alecm]

  • Added the phrase "Open Source" to the colophon to keep google happy [geoffd]

  • Fixed method alias handling in portal_factory (http://plone.org/collector/4263) [geoffd]

  • Added support for parentMetaTypesNotToQuery to the navtree. Fixed http://plone.org/collector/4258 [alecm]

  • Use the old fashioned (but badly named) metaTypesNotToList for the navtree blacklist, instead of reinventing the wheel, appending the necessary new values to that list in migration. [alecm]

  • Use a global define for visible_ids so that it is automatically used for custom types. [alecm]

  • Ceiling date patch is obsolete for CMF 1.5 - removed it. [hannosch]

  • Fixed http://plone.org/collector/4247 remove unused group_submit variable [hannosch]

  • Made it possible to show action icons in personal-bar. [fschulze]

  • Fixed http://plone.org/collector/4229 Error in sharing tab, roles.append changes a list inplace [hannosch]

  • Fixed http://plone.org/collector/4241 MembershipTool.py used _checkPermission without importing it [hannosch]

  • Added is_default_page index to catalog, and made navtree no longer show objects which are the default page in a folder. [alecm]

  • Fixed a number of security related issues. We cannot assume that we can access attributes of the parent object (this includes using 'folder' in actions and 'aq_parent' in skins). This fixes viewing visible objects in private folders, and also some PLIP 16 issues. [alecm]

  • Made NavTree use a black list of portal_types not a white list. [alecm]

  • Removed data/navigation_properties that was deprecated in Plone 2.0, as well as the data/ directory. Migrations to remove the property sheet from ZODB has been added before. [vinsci]

  • Refactoring use of __browser_default__() to use CMF 1.5-style aliases and FTIs, with __browser_default__() still being the fallback for old classes. Some tests had to be fixed for this, too.

    Adding aliases for view, edit, properties, sharing. Fixing up some uses of getActionById() which were failing because of these aliases.

    Note that we now depend on fixes to CMFFormController, ATContentTypes and CMFDynamicViewFTI checked in alongside this commit. [optilude]

  • CMF 1.5 Cookie Crumbler distinguishes between login attempt and authorization failure, making require_login obsolete. [stefan]

  • Added a configlet for setting search options, to enable/disable LiveSearch and to set the types_not_searched property. This is requested in http://plone.org/collector/4032 [jok2]

  • Moved some interfaces to CMFDynamicViewFTI [tiran]

  • Changed unload protection, so only forms with class="enableUnloadProtection" are checked. [fschulze]

  • Slight change to navigationParent script so that it won't fail when a Z3 view is in the acquisition tree [rafrombrc]

  • Added recently_modified page to link to from the recent changes portlet. [ender]

  • Added state coloring in recent changes portlet and search results. [ender]

  • Total rewrite of portlet HTML and CSS. Will keep backwards compatibility until Plone 2.2 is released, though. The old div-based layout is deprecated in favor of a more light-weight markup using definition lists and allowing interesting skinning variations - round corners using CSS, for example. It also has bigger click areas, making it easier to navigate the portlets. [limi]

  • Changed dropdowns slightly, now the activated/deactivated class is set on the dl, not on the dd. When javascript is disabled, the dropdowns don't have an arrow anymore. [fschulze]

  • Simplified collapsibles, this involves new markup. This fixes http://plone.org/collector/4035 - "Collapsible fieldsets take up too much space". [fschulze]

  • Fixed PloneFolder.manage_delObjects() so it returns to the ZMI. Thanks to George Geller. [stefan]

  • Moved some interfaces to CMFDynamicViewFTI [tiran]

  • Removed plone prefix from stylesheets, only ploneCustom.css is kept. [fschulze]

  • Refactored the dropdown menu. It's using css classes for styling of visibility. This involves new markup for the menus. Fixes http://plone.org/collector/2793 - ADD ITEM MENU cuts some entries [fschulze]

  • Tiny change to the nav tree code in PloneTool.py so the nav tree won't barf when there is a Z3-style view class in the acquisition hierarchy [rafrombrc]

  • Some i18n markup corrections after loginageddon and one metadata file in the wrong place, fixed http://plone.org/collector/4197 [hannosch]

  • Loginageddon! Moved login, logout, and registration-related forms and scripts to the new plone_login skin. Converted login forms and scripts to formcontroller forms and scripts. Moved cookie testing and related javascript from login_form into login.js. Made the cookie test messages internationalizable. Made login sequence fail more gracefully when cookies are disabled. Added nice error messages that explain why a login failed (e.g. no login name, no password, and (optionally) login name not found). The login name not found test can be enabled/disabled via a new site_property, verify_login_name. Fixes 2408, 2458, 2250, and 3335.

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

Bullet list ends without a blank line; unexpected unindent.
[geoffd]
  • Fixed http://plone.org/collector/3018 no duplicate id="portal-footer" [hannosch]

  • Added filtering of tests to ECMAScript Unit Tests. [fschulze]

  • Add cssQuery.js to portal_javascripts when installing or migrating. [fschulze]

  • Moved 3rd party ecma scripts like sarissa, livesearch, ecmaunit and vcXMLRPC to plone_3rdParty. 3rd party code will be included by an svn:external rule soon. [tiran]

  • Reactivated alternate font size stylesheets. [fschulze]

  • Added some missing i18n markup. Fixed ZChecker error regarding '>' [hannosch]

  • Fixed migrations of older instances caused by the ResourceRegistries refactoring. If you updated and migrated while this was still broken, then you might have to force a migration from alpha2 or even alpha1. [fschulze]

  • Added framework for ECMAScript Unit Tests. [fschulze]

  • Partially fixed http://plone.org/collector/4077 and #3535 accesskeys are properly definied now, but still need to be changed to numeric values [hannosch]

  • Fixed http://plone.org/collector/2414 all literal msgid's converted to non-literal [hannosch]

  • Merged plip83-kupu-integration r7083:7084 into 2.1 branch. [stefan]

  • Fixed http://plone.org/collector/1382 - Redirection after login has been changed. Original behavior is to strip any query string passed before redirecting. Now, if query string exists (such as when coming from discussion_reply_form.pt), don't strip it off. [briang]

  • Fixed http://plone.org/collector/2756 portlet_calendar localization is working now. had to introduce a new method on the calendar_tool to get the correct daynumbers. [hannosch]

  • Fixed http://plone.org/collector/3365 calendar_slot.pt has been moved to plone_templates/calendar_macros.pt and cleaned up [hannosch]

  • Fixed http://plone.org/collector/4136 you couldn't pick january or the first of a month with the js date picker reflected changes in the tests [hannosch]

  • Fixed http://plone.org/collector/3256 Plone Config -> Add/Remove Products: Added "product filesystem version" in the message displayed for products that need updating. [briang]

  • Fixed http://plone.org/collector/4164 the getIcon and getTypeInfo calls were no longer needed. [alecm]

  • Fixed http://plone.org/collector/4055 by returning an empty list in getAddableTypesInMenu if the View permission is not available. [alecm]

  • Fixed http://plone.org/collector/4114 by adding new criteria to the news and events topics. [alecm]

  • Fixed http://plone.org/collector/4149 - incorrect tal:define for locked items in the byline. Thanks to Raphael Ritz for the fix [optilude]

  • Removed review_state='published' from the query for author page and navigationLocalRelated. Catalog deals with permissions already. Issue 2304. [ender]

  • Fixed http://plone.org/collector/3714. Use ACTUAL_URL to skip to content. [ender, neaj]

  • Fixed http://plone.org/collector/4137 by introducing a keyword argument 'show_inactive'to CatalogTool.searchResults and queryCatalog which disables expiry filtering. Also granted the 'Access inactive portal contents' permission to Owner in migration, and made getFolderContents to pass the 'show_inactive' parameter when the current user has that permission on the relevant folder. [alecm]

  • Introduced a Zope 2.8-style transaction module. Plone code should now use 'from Products.CMFPlone import transaction' which will work in Zope 2.7 and Zope 2.8. [stefan]

  • Moved transaction_note, base_hasattr, safe_hasattr, and safe_callable to the utils module. Got rid of AT-style shasattr. Fixed safe_callable and made sure we use our version of safe_callable throughout. [stefan]

  • Fixed http://plone.org/collector/3410 by declaring enumConfliglets public. The method does its own security checks for each configlet action. [alecm]

  • Fixed index_html hack to return 404 for requests other than (PUT, HEAD, GET, POST). [dreamcatcher]

  • Updated "my folder" action to point straight to folder, not to folder_contents [optilude]

  • Changed 'batch' action which was previously hidden by a condition in global_contentmenus to use a pair of actions, batch and nobatch, with mutually exclusive conditions. This effectively creates a toggle, which is much more sensible than having to click the 'view' tab to get back. [optilude]

  • Fixed http://plone.org/collector/3688 and added a test. Also added a test to ensure that portal_factory respects PLIP 16 local role inheritance. [geoffd]

  • Fixing markup to make zchecker happy and changed table summaries to use non-literal msgids, plus some minor i18n changes. [hannosch]

  • Fixing http://plone.org/collector/4106 - arrow is in wrong direction in breadcrumbs when using RTL sites. When using mixed RTL and LTR content, the order is jumbled, though - not sure if this is common in those languages. [limi]

  • Fix http://plone.org/collector/4089 fix some i18n markup [hannosch]

  • Fixed http://plone.org/collector/2659 using patch by fschulze. [alecm]

  • Fix http://plone.org/collector/4049 - the template showing the discussion threads at the bottom of an item's view template now has a more sensible check to make sure it picks the correct view template. [optilude]

  • Fix http://plone.org/collector/3279 integrate new jscalendar 1.0 [hannosch]

  • Overrode listTypeInfo from CMFCore.TypesTool. The original method was doing security checks on the TypeInformation objects themselves in addtion to the isConstructionAllowed test. This was very expensive and only useful if someone had set custom security restrictions on some TypeInformation objects in the types tool through the ZMI. I cannot see a reasonable reason for someone to do such a thing. Also, removed a check for null TypeInfo.getId(), as this will never happen, if it does it's a bug in and of itself and shouldn't be ignored. Also, changed the check shich ensures that our objectValues() are TypeInfoish to use the clear and sane interface.isImplementedBy(obj) instead of the getattr(aq_base(type),'_isTypeInformation',0) it was using before. [alecm]

  • Fix browserDefault() in PloneTool so that images and files work, and there are less wtf moments. Look at

    http://plone.org/documentation/manual/plone-developer-reference/

    specific-areas/content-types/zope-to-browser

    for details on how the implementation works.

  • Make object paste button act on parent folder for folderish default pages. [alecm]

  • Fixed folder_contents listing table in RTL stylesheet (http://plone.org/collector/4155) [andrewb]

Alpha2 - Released May 25, 2005

  • Fixed the way newsitem_view.pt tests for the (optional) image thumbnail. [tiran]

  • Disabled HTTP compression for .css and .js files by default. You can turn it on by editing skins/plone_scripts/enableHTTPCompression.py. [stefan]

  • urlquote the external_edit path to make exteranl editor work with Chinese id better [panjunyong]

  • Fixed some syndication breakages, and added unit tests for portal_syndication. [alecm]

  • Fixed http://plone.org/collector/4081 changed 'Plone Setup' to 'Site Setup'. [limi] [alecm]

  • Fixed http://plone.org/collector/2850 added on-error handler to portlet_fetcher, currently provides no traceback as tracebacks are not accessible from untrusted code. [alecm]

  • Fixed http://plone.org/collector/2586 changed MembershipTool.getCandidateLocalRoles() to use member.getRolesInContext(obj) instead of member.getRoles(), and to use obj.valid_roles() instead of MembershipTool.getPortalRoles(). This allows loal managers to assign any role, and allows all managers to assign roles that exist only locally and not at the plone root. A side- effect is that roles defined in the zope root and other folders beneath the portal root will be available as well, just as they are in the ZMI. [alecm]

  • Merged PLIP 98 - Scripted Translation Service Interface. This adds a 'translation_service' tool to Plone which replaces the not-quite-sane methods in CMFPlone.utils. UnicodeDecodeErrors should now crop up significantly less often. [longsleep] [stefan]

  • Fixed http://plone.org/collector/3267 removed invalid transition validity test using the fix by blueszhao in the collector issue. [alecm]

  • Applied http://plone.org/collector/4052 titleToNormalizedId (normalizeString) improvement. Object id from title generation should now work with most accented characters. It is possible to define custom normalizations in UnicodeNormalizer.py [naro]

  • Added styles that make the editing widgets look more like their view counterparts. [limi]

  • Make portlet_favorites work again and use the catalog like everything else. Also, use the addable types restrictions in users' Favorites folders. [alecm]

  • Fixed an obvious issue at global_defines when there's no portal_tabs actions. [deo]

  • Made external editing a user preference. It defaults to the setting in the memberdata tool. Migrations should work as well. [ender]

  • Showed icon in byline to change ownership. [ender]

  • Added jscript that hides traditional add items pull-down in folder_contents. [ender]

  • Major refactoring of the CSS, removed all the old navtree classes, made most of the templates use the new auto-generated 'contenttype-*' classes, and lots of other CSS fixes and tweaks. Described the pitfalls for Internet Explorer "here":http://plone.org/documentation/how-to/flickering-background-images-internet-explorer [limi]

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

    Inline emphasis start-string without end-string.

  • Disabled 'Add to favorites' action until favorites are refactored in future plone versions. [ender]

  • Modified labels in personal bar. Removed 'my this' and 'my that'. It's already a personal bar. [ender]

  • Renamed titleToNormalizedId to the variation prefered by limi normalizeString() [alecm]

  • Fixed http://plone.org/collector/4062 made history_form show true causes for an empty page, rather than always assuming that the error is due to missing Historical interface. [alecm]

  • Added automatically generated classes for content types. You can now always get a class "contenttype-news-item" for every content type installed. It is normalized according to the same rules as IDs. [limi]

  • Replaced registered_notify_template and mail_password_template DTMLs with page templates. See http://plone.org/collector/3483 [dpunktnpunkt]

  • More spring cleaning: Removed the implicit removal of underlining links - Plone now specifies explicitly when it wants the link to not have an underline, and defaults to having it, like the good HTML citizen it is. Some products may get underlines on links that didn't have them before, but this should be trivial to fix, and is worth it in the long run. [limi]

  • Finally removed all implicit margins from Plone's input elements - if this leads to some slight disturbances in the force (ie. some of your form elements have explicit margins added to compensate for the old behaviour), I apologize - but this has been around since Plone 1.0, and is just very confusing when you use the form elements. Should be easy to adjust in your Product - just remove the margins you added to the input tags. [limi]

  • The tag rendering the description attribute is left out if there's no description, it also uses a paragraph tag instead of a div now. Resolves http://plone.org/collector/3841 [limi]

  • Added icons for feed:// and webcal:// links. [limi] [elvix]

  • Fixed http://plone.org/collector/2844 made WorkflowTool.getTransitionsFor return the action_url. This is not currently used for the content menu, but it does allow developers to access this information for tighter control over transitions for custom workflows. Added new testWorkflowToool.py with one lonely test. [alecm]

  • Fixed http://plone.org/collector/2867 put the list reversal in content_status_history in the proper place. [alecm]

  • Fixed http://plone.org/collector/2416 by updating document_byline to use the portal script. Changed the isExpired script to prefer the DC Metadata accessor 'ExpirationDate', but fall back on 'expires'. Also, it now uses safe_callable to determine whether we have an accessor or catalog metadata, rather than strange looking exception handling. [alecm]

  • Changed the bogus 'ExipresDate' metadata from CMFCore to the DC 'ExpirationDate' during migration. [alecm]

  • Added safe_callable method to __init__.py. This is acquisition and ConfilctError safe (it uses shasattr), and should be used in place of callable() when possible. [alecm]

  • Add 'shasattr' from Archetypes.utils to __init__.py, make the existing 'base_hasattr' a wrapper around this safer more flexible method. Please use this in python scripts and elsewhere in place of 'hasattr' which has serious potential issues. Can be imported with 'from Products.CMFPlone import shasattr'. [alecm]

  • Fix livesearch_reply and queryCatalog so that they quote parentheses. Otherwise a parse error is thrown. Fixes http://plone.org/collector/3067 the other listed characters from the Silva bug report don't appear to cause problems. Also, apply quote_logic if enabled to Title and Description text searches, not just SearchableText by default. [alecm]

  • Made the livesearch_reply query a little less strange. It used to turn 'my dumb query' into 'my* and dumb* and query*' which is strange, now it just does 'my AND dumb AND query*'. Also, the more link was just doing 'my+dumb+query', which results in an entirely different set of results than shown in the dropdown, now it uses the same query as the dropdown. [alecm]

  • Use plone_utils.getUserFriendlyTypes() to do type restriction on LiveSearch just like everywhere else. [alecm]

  • Remove permission check in search_form, there's no reason to disallow review_state seraches to users that are not granted 'Review portal contents' on the portal root. The catalog enforces 'View' security just fine. Resolves http://plone.org/collector/2175 [alecm]

  • PloneTool._makeTransactionNote() now uses the site encoding not UTF-8. [alecm]

  • Made folder_cut, folder_copy, folder_paste, and folder_position redirect to the originating template not hardcoded folder_contents. [alecm]

  • Fixed #850: Allow discussions to be closed. I changed viewThreadsAtBottom to list existing discussion items even if discussion is disabled. This requires our own portal_discussion.getDiscussionFor, because CMFDefault's raises DiscussionNotAllowed on this get operation.

    I also added a check for portal_discussion.isDiscussionAllowedFor in validate_talkback because, funnily enough, DiscussionNotAllowed isn't raised on createReply in DiscussionItem when it's turned off. [dpunktnpunkt]

  • Added a getGroupInfo() public method to the portal_groups tool, like getMemberInfo() in portal_membership tool. [gerry_kirk]

  • Made the navTree breadcrumbs and folder based portal tabs use the new, typesUseViewActionInListings property to determine the appropriate url. Also, added some extra unit tests for the above PloneTool methods. This and the previous entry should resolve issues http://plone.org/collector/928 and http://plone.org/collector/2373 [alecm]

  • Added a new typesUseViewActionInListings property in site_properties which can be used for types whose immediate view is not desirable to link to from folder_contents or folder_listing (currently Image and File). Also, typesLinkToFolderContentsInFC is no longer used, and listing templates have been simplified a bit. [alecm]

  • Gave a title to the Favorites folder. [alecm]

  • Refactored the way portal discussions are displayed. They are now shown in an expanded way so no more clicking is needed to read the entire discussion. [ender]

  • Added methods for retrieving version tuples to utils module (FS version only) and to MigrationTool (both FS and instance versions) [rafrombrc]

  • Added charset to the Content-type header when use RSS to fixed some encoding problem. [panjunyong]

  • Added [duncanb]'s update for bug #3294. Tables no longer need an id attribute to be sorted. [elvix]

  • Added fix for bug #4027. feed:// and webcal:// links now get special css-classes so that they may be styled appropriately. [elvix]

  • Changed the 2.1 migrations so that they make sure the MemberDataTool is the default (i.e. not CMFMember) before trying to manipulate the properties on the tool, since a) modifying the properties on CMFMember's MemberDataContainer doesn't accomplish anything and b) property name conflicts were causing the Plone migrations to fail in sites w/ CMFMember installed [rafrombrc]

  • Changed the global_defines attribute 'isFolder' to 'isFolderish' - it was only used in one location in the Collective projects I checked, and one location in Plone itself - and didn't really test the right thing. It was also expensive. If you have a third-party product that was using 'isFolder' for anything, you should update your code. Removed redundant check in content_status_history as a result. [limi]

  • Updated 'ownership_form' to not display the subobjects checkbox if the item is not folderish. [limi]

  • Added rel="nofollow" attribute to calendar links. Should ultimately be restricted by a year range, but this is a quick workaround. Closes http://plone.org/development/teams/ui/tasks/89 [limi]

  • Added support for searching for members who have NOT logged in since the specified last_login_time. [rafrombrc]

  • Added Description, Location, Language and Home Page to Author page. [limi]

  • Fixed permissions and conditions on folder 'cut' and 'copy' actions previously they used 'View management screens' and 'Modify portal contents'. Removed action creation from setup/ConfigurationMethods.py for these and change_state. [alecm]

  • Fixed http://plone.org/collector/2836 - Review portal contents or Modify portal contents is sufficient to show the change_state action. [alecm]

  • Changed member_search_form.pt so that it submits last_login_time as a plain DateTime object rather than a catalog style query dictionary. [rafrombrc]

  • Exposing 'language', 'home_page', 'location' and 'description' in getMemberInfo() in the MembershipTool. These are used in author.pt. [limi]

  • Added ploneGenerated.css for programmatically generated classes, and ploneMember.css for logged in users (for state coloring etc). Cleaned up the configuration a bit (added media declarations), updated tests. [limi]

  • Changed 'news' and 'Members' portal tabs migration so that it disables, rather than deletes the actions. No need to be destructive. [alecm]

  • Added new portal_memberdata properties 'home_page', 'language', 'location', 'description' (text) at limi's request. [alecm]

  • Fixed http://plone.org/collector/3095 - You can now use actions to create tabs for folders not at the portal root and the tab highlighting will work correctly. This is done by comparing the current object path to the actions url (i.e. the id of the action no longer has to be related to the resulting url). [alecm]

  • Fixed http://plone.org/collector/3681 - No longer allow to add content with ids of skin scripts. [whit537]

  • Fixed http://plone.org/collector/3999 - check_id now gives better error messages. [whit537]

  • Fixed http://plone.org/collector/1987 - 'batch' mode now enabled whenever the List folder contents property is available and one or more of the modification permissions is available (Delete, Copy, Add, Modify). These checks apply to the current object if it is folderish and not set as the Default Page for its parent; otherwise, the checks are made on the parent. [alecm]

  • Fixed http://plone.org/collector/2912 - "Format" renamed to "MIME type" in metadata form to avoid confusion with the text format selector. [limi]

  • Fixed http://plone.org/collector/3938 - duplicate class definitions for .even and .odd. [limi]

  • Manually merged Duncan's plip24-form-unload-branch. Plone will now present a warning message if the user tries to navigate away from a page with a changed form. [duncanb][elvix]

  • Changed encoding to utf-8 on javascript files to stay in sync with the rest of Plone. [elvix]

  • Enabled the "display" menu on the portal root. You can set the templates to be available there using the property "selectable_views" at the root portal object. Also renamed the front page from index_html to front-page and set is as the default page during portal creation, in order to make the "display" menu work as expected immediately after portal creation. [optilude]

  • Made sure PloneTool.changeOwnershipOf() works recursively. [stefan]

  • Fixed user and group name/id fuzzyness in PloneTool.changeOwnershipOf() and folder_localrole_form.pt. [stefan]

  • Reworked prefs_users_overview to use CMFForumController and to simplify prefs_user_manage.cpy. [bmh]

  • Fixed http://plone.org/collector/3931 - add 'more ...' link to events portlet, also added new events tab/folder and topic to match the news folder/tab and topic. [lucas]

  • Fixed http://plone.org/collector/3752 - return rss search results in effective date order (reversed), unless another order is explicitly given. [alecm]

  • Changed portlet_news.pt and news_listing.pt to do the right thing if the 'news' folder at the root of the site isn't there. [rafrombrc]

  • Added some argument type sanity checking to queryCatalog.py; it was failing on valid queries b/c it was making assumptions about the types that it was receiving. [rafrombrc]

  • Add charset info for ZMI pages like addSite.zpt and addPropertySheet.zpt for better Chinese support. [panjunyong]

  • Fixed http://plone.org/collector/3901 - applied the PloneTool.py patch by F Bennett (bierce), which shows full listing of inherited roles. [alecm]

  • Fixed http://plone.org/collector/3819/ - applied the utils.py patch provided by gkirk [rafrombrc]

  • Fixed prefs_user_details to only display user roles and not roles inherited via groups since those can't be edited on this form. [bmh]

  • Fixed http://plone.org/collector/3848/ - changed prefs_error_log_update.py to match the button submit values on prefs_error_log_form. [rafrombrc]

  • Minimally reworked user/group control panel pages to plone2.X style fixing http://plone.org/collector/2204 and possibly others. [bmh]

  • Updated all references to CSSRegistry to the new, renamed, ResourceRegistries. Migrations, tests. Instead of name-confusion, there is now the product ResourceRegistries containing the two tools CSSRegistry and JSregistry. [elvix]

  • Fixed http://plone.org/collector/3835 - Changed .metadata file of prefs_user_manage.cpy script to redirect instead of traverse on success [gkirk]

  • Fixed http://plone.org/collector/3903 - Removed hardcoded references to logo.jpg in favor of the logoName variable defined in base_properties. [bmh]

  • Fixed http://plone.org/collector/3544 - Use password_confirm as the name of the password confirmation field so it doesn't show up in error logs. [bmh]

  • Fixed http://plone.org/collector/3811 - Start and end times of same-day events now respect AM/PM settings (event_view). [naro]

  • Made folder actions (cut, copy, rename, delete, publish) give nice message instead of error when the selected item is no longer available. Fixes issue #3911 (http://plone.org/collector/3911). [alecm]

  • Made sortable_title use the site-encoding to store the final value (not direct unicode). Also, made sortObjects.py case insensitive. [alecm]

  • Fixed http://plone.org/collector/3866 - Improved performance of sortObjects helper script by a factor of 3. [axa]

  • Fixed http://plone.org/collector/2791 - Timestamps in recently_published and folder_contents now use the configured long format. [naro]

  • Add a hook to call a method or script 'getCustomNavQuery' to createNavTree and createTopLevelTabs. This method should return a dict to augment the catalog query (i.e. require specific workflow state or custom property), the parameters will not override any of the default parameters. [alecm]

  • Add a disable_folder_sections to site_properties so that people who don't want to use top-level folders for tabs can just use the actions in the original manner. [alecm]

  • Made the default news folder view a Topic at limi's request. Made changes to the way folderish default documents are handled to make the UI for this sensible. Folderish default pages now act entirely non-folderish as far as global_contentmenu is concerned. If such an object wants to have a batch view, add buttons, view control, etc. it must implement them as object actions (like the sub-topic form). Also, fixed a bug which caused folderish types that had no preset template views to not show their selectable default view menu, leaving a non-working display menu. [alecm]

  • Add support for the 'pghandler' argument added in Zope 2.8 (though we don't officially support Zope 2.8 yet). [dreamcatcher]

  • Changed the order of the documentActions in the default view templates. If you have customized your view templates, you need to move these above the headline tag. Sorry about the inconvenience, but the existing positioning was triggering too many browser bugs. This keeps it simple. Look at 'document_view' if you need an example. [limi]

  • Publishing the default document in a folder now publishes the folder as well, if possible (and similarly, making the default page visible or private will make the folder visible or private as well) [optilude]

  • content_status_history (Change state button from folder_contents or 'advanced' item in state drop-down) is now more consistent, showing the items being affected in both cases, and permits the publishing of folder contents along with a folder no matter which method is used. [optilude]

  • Default content types are now in portal_factory [optilude]

  • registered_notify_template now honours the 'email' parameter passed in instead of using 'member.email', and in the process no longer breaks CMFMember [optilude]

  • Merged (some variation of) madduck's member area type selection branch. This allows to configure the portal type used for home folders in the membership tool. [stefan] [madduck]

  • Fixed non-ASCII character issue in sortable_title method. [alecm]

  • Fixed up permissions on new cut/copy/delete actions. [bmh]

  • Fixed http://plone.org/collector/3384 by catching CopyError so users don't get dumped into the ZMI. [bmh]

  • Made sortable_title do useful numerical sorting, and truncate values longer than 30 chars to prevent bloat. [alecm]

  • is_folderish metadata added. It contains bool(isPrincipiaFolderish) [tiran]

  • sortable_title FieldIndex added by popular demand. [alecm]

  • Made folder_contents useful for viewing and altering non-local content (try folder_contents?path=/). Changed folder_delete, folder_publish, and folder_rename to work with paths instead of ids (and altered corresponding forms). Added new method to workflow tool to get workflow transitions for objects given by path rather than id. Made the aforementioned scripts redrect to the originating form instead of hard-coded folder_contents (uses request variable 'orig_template'). Removed copy, cut, paste buttons when the folder_contents view isn't local, as those actions won't work properly in that circumstance (copy can probably be implemented, but will need to use some OFS internals). Added tests for folder_delete, folder_publish, and folder_rename. These changes fix issue #216 (http://plone.org/collector/216). [alecm]

  • Added Topics to the default NavTree listing. [alecm]

  • Made migration work from 2.0 svn, and not fail if SUPPRESS_ATCT_INSTALLATION is set. [alecm]

  • Added RTL support (separate CSS is included for this, is only activated when the language is an RTL language). [limi, mohsen]

  • Added Mobile device support (handheld CSS profile). [limi]

  • Fixed http://plone.org/collector/2959 with a minor change to check_id to account for portal_factory weirdness. Also required an update to ATCT to do proper id checking on auto-rename. [alecm]

  • Re-did the fix for disappearing text in Internet Explorer, added special class 'visualIEFloatFix' that can be used for these, also adding a how-to with examples to plone.org. [limi]

  • Added a reference rendering document to show all the user interface elements to ease cross-browser testing of third-party skins. Template name is 'test_rendering'. [limi]

  • Added ECMAUnit JavaScript testing framework to skins in anticipation of a real testSuite for the Plone JavaScripts. Pasted the license and credit files into the top of the library to keep them contained. [elvix]

  • Made 'title' attribute on add-new-item drop down items display item description, as per bug http://plone.org/collector/2938. [optilude]

  • Introduced the ExtensibleIndexableObjectWrapper. It's a wrapper based on the IndexableObjectWrapper for the catalog tool that can easily be extented by registering methods. [tiran]

  • Renamed ugly 'PloneUtilities.py' module to 'utils.py'. The former is still around but issues a deprecation warning. [stefan]

  • Fixed bug http://plone.org/collector/3647 to allow removing all roles from a group. [optilude]

  • Fixed bug http://plone.org/collector/3386. Modified folder_rename_form.pt to reflect user authorisations on each item. [davconvent]

  • Implemented fix for http://plone.org/collector/3522 to add default groups "Reviewers" and "Administrators" to Plone, with the appropriate roles. [dpunktnpunkt] [optilude]

  • Made PloneFolder.moveObjectsByDelta not throw an error when passed a non contentish object id (apparently this happens during some migrations). Fixes #3959 (http://plone.org/collector/3959). Requires a small fix in AT done on 1.3 branch. [alecm]

  • Fixed computeRoleMap.py so that it stores the role information by user/group id not name, as a user and group may have the same name and it would be wrong to combine them. This is related to issue #3711 (http://plone.org/collector/3711) which is itself a GRUF issue fixed in GRUF svn. Also implemented a faster sort algorithm in the above script. [alecm]

  • Made prev/next links in calendar portlet respect current query parameters. Fixes bug #3949 (http://plone.org/collector/3949). [alecm]

  • Added id="breadcrumbs-you-are-here" to the <span> tag where "you are here" is printed in global_pathbar.pt. It is now possible to remove cleanly that message, applying a CSS rule. [davconvent]

  • Removed obsolete formtooltips member property. [stefan]

  • Made all portal_status_messages with dynamic parts translatable. Fixes http://plone.org/collector/2532 [dpunktnpunkt]

  • Included code from the CatalogOptimizer product, i.e. PLIP 89. This gives us DateIndexes and DateRangeIndexes instead of slow FieldIndexes. [stefan]

  • Fixed bug in logged_in.py where login_password would not have been triggered even when appropriate on first login; fixed related issue in login_password.pt. [rafrombrc]

  • Fixed problem where navtree was duplicate highlighting when user viewed home page, where folder default pages were showing up when 'showAllParents' is True, general default page navtree fixes. [rafrombrc]

  • Changed content_status_history to work w/ the new catalog-based folder contents code. [rafrombrc]

  • Restored batchedFolderContents for backwards compatibility, and moved batching into the python script getFolderContents (which takes optional 'batch' and 'b_size' parameters). Marked batchedFolderContents and getFolderListingFolderContents as deprecated, both just call getFolderContents now. [alecm]

  • queryCatalog was altering the queries passed to it to filter out types. This is unnecessary; it should only filter when no explicit types list is passed. Also, queryCatalog is uesful in places other than the search (folder_contents) where the filtering may be undesirable. As a result the filtering is now optional and enabled by a parameter use_types_blacklist, which is used by default in search.pt and search_rss.dtml. [alecm]

  • Added unit tests for folder based portal tabs and catalog based breadcrumbs. Fixed bug in portal tab ordering. [alecm]

  • Updated and enhanced the dependency checks to check for the right versions of Python, Zope and CMF. [tiran]

  • Merged PLIP 74 - Cut/copy/paste actions on objects + Batch mode. The 'contents' tab is now removed, though folder_contents can be accessed via the 'batch' button. It's importance is greatly reduced, because the most common operations it was being used for (cut/copy/paste and object) are now available directly as actions on the object. [davconvent] [optilude]

  • Made sure migration catalogs the Members folder. This is required for the catalog-based navigation stuff. [stefan]

  • Merged PLIP 76 - author feedback. A new link appears when viewing content created by portal members, taking the viewer to an author profile page. This page permits logged in users to send feedback via email (without exposing the author's email address) using a feedback form. It also shows the most recent publications by this member. [VladDrac] [optilude]

  • Fixed link to CMF website on welcome page. [stefan]

  • Merged plip91-folder-based-sections r6405:HEAD into 2.1 branch. [stefan]

  • Implemented PLIP 91: Made sections (global tabs) render the top level folders in the portal root. Removed existing actions for news and Members and added a news folder with default view set to news_listing.pt (formerly news.pt). Added support for the property 'idsNotToList' from navtree_properties, so that the navtree and section tabs don't show the listed ids. Added a catalog metadata column 'exclude_from_nav', so that when a boolean property of that name is set on an object it and it's children will be excluded from the navtree and section tabs. [alecm]

  • Do not display "Forgot your password?" when user doesn't have "Mail forgotten password" permission. Added a security check to RegistrationTool.mailPassword(). http://plone.org/collector/3338 [dpunktnpunkt]

  • Merged PLIP 75 - blacklisting of types. The types_not_searched property in site_properties can now be used to give a list of types which will be ignored for search purposes (via queryCatalog; the getUserFriendlyTypes() method in plone_utils can be used to get the same filtering elsewhere). [optilude] [jjmurre]

  • Add new method to PloneTool getOwnerId, which gets the id of the owner of an object. It's protected by the view permission on the object, and used in ownership_form in place of Creator, which may no be the same as owner for AT types. Also modified ownership_form to use form controller. http://plone.org/collector/3662 [alecm]

  • Set Title and description on member folders and personal folder. Was broken due to permissions improvements in AT. [alecm]

  • Merged plip93-optimize-templates r6360:HEAD into 2.1 branch. [stefan]

  • Removed worklist query from listFilteredActionsFor. http://plone.org/collector/3779 [alecm]

  • Removed useless check for duplicate actions from listFilteredActionsFor. Gives a big speed improvement thanks to Dieter. [alecm]

  • Minor refactoring of the calendar portlet to avoid unnecessary duplicate method calls. Removed getBeginAndEndTimes. [alecm]

  • Replaced breadcrumbs implementation with a faster simpler one based on ExtendedPathIndex. [alecm]

  • Turned off DC MetaTags by default, added a global config to site_properties so that they can be reenabled if desired. [alecm]

  • Made the calendar portlet HTML output Not Suck. The code, however still does. ;) [limi]

  • Fixed http://plone.org/collector/3924 eradicated all string exceptions. [alecm]

  • Fixed http://plone.org/collector/3910 isValidEmail now uses the _checkEmail function from CMFDefault to avoid ValueErrors. [alecm]

  • Added empty fill-slot="sub" to discussion_reply_form to get rid of the second, broken 'add comment' button showing up on that form for top level comments http://plone.org/collector/3845 [rafrombrc]

  • Moved retrieval of Zope system information out of plone_control_panel.pt and into proxied script getZopeInfo.py so that plone Managers who are not also Zope top-level Managers can view the page. [bmh]

  • Added installation of default CSS and JavaScripts. [elvix]

  • Added CSSRegistry and JSRegistry dependencies. All stylesheets and javascripts are now registered with these tools instead of hardlinked into header.pt. [elvix]

  • Cut the default Styleesheets and Javascripts into smaller pieces to be served up by the CSS- and JS-Registries [elvix] [limi]

  • Added showAllParents property to navtree_properties and to appropriate portal migration, added implementation to navtree code in PloneTool. [rafrombrc]

  • Because normalizeISO() only deals with Unicode strings titleToNormalizedId() must make sure to pass it only Unicode. Added a check and a conversion from the site's default encoding. [stefan]

  • Fixed UI task #21: renamed "Name" to "Login Name" in login form and portlet [mrtopf]

  • Fixed UI task #19: default homepage for new members is not created anymore by default [mrtopf]

  • Fixed UI task #5: Status message should show the name instead of title of a portal type on add. Now shows the title. [mrtopf]

  • Fixed UI task #79: removed "you are logged in" message [mrtopf]

  • Fixed UI task #73: added display of plone, zope and python version to the ControlPanel [mrtopf]

  • Merged plip81-BylineHistory r6154:HEAD into 2.1 branch. This adds workflow history to the document byline. [stefan] [ender] [limi]

  • Manually merged new css files from uiteam-plip85-componentized-css r6361:HEAD into 2.1 branch. These are not hooked up to anything just yet, but will be used by the CSSRegistry. [elvix]

  • Split plone_javascripts.js into small components in preparation of the JSRegistry tool. [elvix]

  • Merged uiteam-plip86-catalog-based-folder-listings r5865:HEAD into 2.1 branch. Plone's folder_contents and folder_listing templates now use catalog results instead of traversal. [stefan] [alecm] [_ender_] [whit537]

  • Added macros to folder_contents that allow reuse of the entire content area, including the definition of the content list. Added slots and variables that allow macro users to change the title of the page, the columns displayed, and the type of content filtering and sorting performed. [alecm]

  • Added slot to folder_listing that allows macro users to add custom bylines for specific types. Also, added the ability to set a limit (in the request or containing template) on the number of items shown in a listing, along with a customizable link to see more contents which defaults to 'folder_contents'. [alecm]

  • Merged uiteam-plip77-78-content-menu-browser-default-refactoring r6317:HEAD into 2.1 branch. [tiran]

    PLIP 77: Constrain addable types on a per-folder basis - New menu item "settings" on "add new item" drop-down to select

    System Message: ERROR/3 (<string>, line 1963)

    Unexpected indentation.

    which items to display, and how.

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

    Block quote ends without a blank line; unexpected unindent.

    [optilude]

    PLIP 78: "Display" menu to select default view of a folder - Enable TemplateMixin and fix its UI (in ATContentTypes) - Add a "display" drop-down where these can be chosen - On folderish items, an option "select item" - shows browser, select

    System Message: ERROR/3 (<string>, line 1970)

    Unexpected indentation.

    default_page.

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

    Block quote ends without a blank line; unexpected unindent.

    [optilude] [davconvent]

  • Cleaned up listMetaTypes by moving the payload into PloneTool and cleaning up the code. [tiran]

  • Added PIL to dependencies to be able to close PLIP 82. [stefan]

  • Changed 'context.aq_explicit.getObjectPosition' to 'context.aq_inner.aq_explicit.getObjectPosition' in getObjPositionInParent.py to guarantee that we don't acquire getObjectPosition. [rafrombrc]

  • Merged plip-80-navtree r6183:HEAD into 2.1 branch. This adds the new catalog-based navigation tree and sitemap. Plone now depends on the ExtendedPathIndex product. [stefan] [jladage] [tesdal] [elvix]

  • Merged plip79-RelatedItems r6128:HEAD into 2.1 branch. Adds a macro to display related items in all content templates. [stefan] [_ender_] [mrtopf]

  • Merged uiteam-plip73-sanitize-short-names r6113:HEAD into 2.1 branch. This removes "Allow editing of Short Names" from personal prefs and makes it a site-wide property. [stefan] [alecm]

  • Merged plip72-LiveSearch r6110:HEAD into 2.1 branch. Adds LiveSearch by ObjectRealms to the search box. [stefan] [_ender_] [mrtopf]

  • Merged plip71-full-screen-mode r6124:HEAD into 2.1 branch. This adds a document_action to enter full screen mode. [stefan] [arjen] [elvix]

  • Use 'structure' in sendto_template.pt. Email text doesn't need any transforms. [panjunyong]

  • Added some knobs to jscalendar:

    • show_hm: show hour and minute dropbox or not
    • show_jscalendar: show the jscalendar icon or not. If you hate the fat javascript, you can turn it off.
    • starting_year: starting year
    • ending_year: ending year
    • future_year: future years after this year
    • show_single_year: when year is fixed (min_year==max_year), sometimes we don't need to show the single year. [panjunyong]
  • Old popup calender (Plone 1.x) works again. [panjunyong]

  • Don't install SecureMailHost if already installed. [tiran]

  • Added 'SUPPRESS_ATCT_INSTALLATION' environment var check before ATCT installation. It can be set to 'YES' in order to suppress the installation of ATContentTypes at portal creation time for e.g. migration tests. [tiran]

  • Use images in plone_tableless/colophon.pt just like the one in plone_templates. [panjunyong]

  • Fixed ATContentTypes bug [ 1158950 ] ATTopic default view wrong. PloneUtils.browseDefault wasn't playing nice with folders and template mixin. [tiran]

Alpha1 - Released March 12, 2005

  • No longer uncatalog the Members folder on installation so that the new NavTreePortlet (not included) works out of the box. [stefan]
  • Changed PloneTool.availableMIMETypes to use the MimetypesRegistry to return a list of mimetype names. [tiran]
  • Fixed discussion_reply.cpy to use portal_discussion.getDiscussionFor(obj) instead of accessing the talkback object directly. [tiran]
  • Now using CookedBody instead of EditableBody in news.pt [tiran]
  • Merged Plone 2.1-atct branch. Plone now uses and requires Archetypes 1.3 and ATContentTypes. [stefan]
  • Removed the debian directory. [stefan]
  • Slight text edits in content_status_history template to more accurately reflect the influence of the effective and expiration dates. [rafrombrc]
  • Added support for Firefox Live RSS Bookmark. RSS enabled objects will show the RSS button in firefox. Search results too. [batlogg]
  • Fixed wrong i18n output encoding when create member area. We must set correct 'content-type' header to make PTS work when call translate. [panjunyong]
  • Fixed PLIP16 integration to make it works with all content types, not limited to Plone Folder. [panjunyong]
  • Added a charset header in sendto_template to make it work with PlasslessTranslationService. Previous sento_template didn't work with Chinese at least. [panjunyong]
  • Members can be searched by group in folder_local_role and member_search_form now. [panjunyong]
  • Moved the setting of login_time and last_login_time out of the (not always reached) login_success.pt and login_password.pt templates and into the (always executed) logged_in.py script. [rafrombrc]
  • Permission settings were not being correctly copied to temp folder because we were using 'self' instead of 'intended_parent' for looking up permission roles, thus looking them in the factory tool instead of the target container. [dreamcatcher]
  • Fixed a long-standing visual styling bug of the 'hr' element, it used to only work properly with regards to colors/size in IE, now it works in standards-compliant browsers too. [limi]
  • Added convenience ID for use in CSS - #portal-header - useful for background images in the portal header, for instance. [limi]
  • Removed deprecated generateId script. We use generateUniqueId. [stefan]
  • Added isRightToLeft utility Python Script which provides a fallback value if PTS is not installed or of the wrong version. [stefan]
  • Merged in RTL support - Plone now correctly flips all the graphic elements and CSS declarations when using a right-to-left language like Arabic or Hebrew. [limi]
  • Undid Jim's earlier change to the way the body tag is computed. It's now back to the original behaviour, with section-<section> class on the body tag. [limi]
  • Fixed several potentially unsafe uses of acl_users.getUserById(). [stefan]
  • Intergrated PLIP16. It is now possible to stop acquisition of local roles in a Plone Folder and change the roles of already assigned users/groups. Many thanks to: ender, MrTopf, hazmat and pjgrizel. [jladage]
  • Plone now supports/requires GRUF 3.1.1. Thanks to pjgrizel for the patches. [jladage]
  • Fixed http://plone.org/collector/3641 - validate_start_end_date chopped off the AM/PM value when saving Events. [stefan]
  • Removed the dependency on Formulator as well as FormTool and NavigationTool. [stefan]
  • It was impossible to create an item named 'index_html' in the portal root or inside a folder via WebDAV. Added a functional doctest for it. [dreamcatcher]
  • Removed headingFontBaseSize from base_properties and plone.css.dtml because it doesn't actually work and cost/benefit of implementation is too high. [whit537]
  • Added utility javascript "nodeContained" to check if a node is contained in another node [elvix]
  • Added Collapse/Expand-form-section javascript for future use. Usage described in plone_javascripts.js [elvix]
  • check_id now accepts an additional 'contained_by' argument, allowing to disambiguate the target folder in cases where using the acquisition parent would yield the wrong results. [gkirk]
  • Consolidated all monkey patches in the 'patches' sub-package. [stefan]
  • Changed CatalogTool.catalog_object() and CatalogTool.reindexObject() to support the new update_metadata protocol (Zope > 2.6.2). An optional 'update_metadata' argument controls whether the object's metadata record is updated while cataloging. It defaults to yes. [stefan]
  • Plone now uses SecureMailHost instead of plain old MailHost. [tiran]
  • SearchableText, Title, and Description now use TextIndexNG2 if installed. All three indexes fall back to ZCTextIndex if the TextIndexNG2 product is not installed. Note that in Plone 2.0 Title and Description used to be plain TextIndexes. [ajung]
  • Plone now uses DateIndexes for created, modified, effective, and Date. Note that we do not yet use DateIndexes for expires (CEILING issues) and start/end dates of Events. [ajung]
  • toLocalizedTime() replaced toPortalTime(). However this is NOT the way it should be and will be revised. See http://plone.org/collector/2461. [db] [batlogg]
  • getObjSize() now accepts second (optional) size argument to allow formatting of arbitrary sizes. [andym]

Docutils System Messages

System Message: ERROR/3 (<string>, line 726); backlink

Unknown target name: "transaction".