============
Five Changes
============

Five 1.0.2 (2005-07-12)
=======================

This version is also included in Zope 2.8.1

* Fixed some issues with bridged interfaces: Bases and Methods were not
  bridged correctly. extends() was never True.

* zope.security.checkPermission now behaves exactly like
  Five.security.checkPermission (in fact, the former now calls the
  latter through the indirection of Zope 3 security policies).

* Fixed a bug with resource directories.  Resources within those were
  not rendering their absolute URL correctly.

Five 1.0.1 (2005-05-31)
=======================

This version is also included in Zope 2.8.0

* Changed license headers to the ones used in the Zope.org repository.
  This makes merging between the main development line of Five (hosted
  on codespeak.net) and the version integrated into Zope 2.8 much
  easier.  The actual copyright ownership isn't affected because Five
  had been contributed to the Zope project anyway (which was blessed
  by all Five contributors).

* Made automatically generated add and edit forms unicode-aware.
  ZPublisher does not automatically decode incoming form values to
  unicode, so AddView and EditView emulate this behaviour themselves
  now.  They also take care of setting the right charset on the
  outgoing form so that ZPublisher will encode it accordingly when
  sending the response to the client.  (In Zope 3, all charset
  negotation between the client and the server takes place in the
  publisher.)

* Added ``IHTTPCharset`` adapter for ``IHTTPRequest`` so that
  application can find out the preferred character set of the HTTP
  client (Zope 2 applications needs to take care of their own charset
  header).  The adapter is used for the automatically-generated forms
  when determining encodings for unicode field content.

* Modified edit.pt to make sure editforms have only one body tag.

* Fixed the ``INameChooser`` adapter for ObjectManagers (e.g. Zope 2
  folders) and added unit tests.

* Fixed small bug in BrowserDefault which caused an error if the class is
  defaultViewable but the object's interfaces have no defaultView.

Five 1.0 (2005-04-27)
=====================

Features
--------

* Zope 3 style ``ISized`` adapters for objects are now exposed to the
  ZMI and other Zope 2 frameworks via the known ``get_size`` method,
  provided this is turned for the class in question via the
  five:sizable ZCML directive.

* There is now a standard standard_macros. Five page templates can use
  context/@@standard_macros/view to get the default site layout, and
  people can register their own standard_macros in a skin.

* The addform and editform directive now supports the widget ZCML
  subdirective, which previously was ignored.

* Five now supports the vocabulary ZCML directive.

Bugfixes
--------

* Add and edit forms are now protected properly.

* The checkbox widget did not work correctly in its off state, this
  has been fixed.

Five 0.3 (2005-03-11)
=====================

* Five now uses the Zope 2 page template engine, not the Zope 3
  engine. This allows better integration with Zope 2-based page
  templates, such as macros.

  It uses TrustedExecutables technology (thanks to Dieter Maurer) to
  turn off Zope 2 security in page templates, so Five's security
  behavior is very similar to what it was before.

* Five now supports the browser:menu, menuItem and menuItems
  directives.

* A new Five-specific directive has been added:
  five:pagesFromDirectory.  This adds one page for each .pt file in a
  directory to the specified interface. This is useful for Five
  integration with CMF and other systems that have Page Templates
  macros that need to be shared between Zope2 and Five.

* Five.security.checkPermission has been changed from a (unused)
  method for checking the existence of permissions. Use
  zope.app.security.permission.checkPermission if you need that
  functionality.

  Instead Five.security.checkPermission is now a Five version of
  zope.security.checkPermission, which checks if the current user has
  a permission on an object.

* Support for browser:editform. You can now use schemas for editing.

* Support for browser:addform; add forms using '+'. You can now browse
  to 'container/+/addsomething.html' to get to a schema-driven add
  form.

* Fixed a traversal bug which caused Zope to give the wrong error when
  a page could not be found (missing docstring instead of not
  found). Zope 2.7.4 (or higher) is required for this fix.

Five 0.2b (2004-09-24)
======================

* Added utility module, 'bridge', allowing reuse of Zope 2 interfaces
  (by introspecting them to create equivalent Zope 3 interfaces).

* five:viewable was renamed to five:traversable, five:viewable still
  works but is deprecated; a deprecation warning is emitted when it is
  used.

* like in Zope3, an ITraverser adapter is looked up to determine what
  happens when traversing into a Five traversable object.

* added five:defaultViewable to make instances of a class directly
  viewable using browser:defaultView. This is hookable by the use of a
  IBrowserDefault adapter

* deprecated use of Products.Five.api as public API for other products
  to use, instead import directly from Products.Five. Retired
  Traversable and Viewable from the public API; use ZCML directives
  (five:traversable, five:defaultView) instead of mixins to make
  instances of classes work with Five.

* classes that Five monkeypatches now have a __five_method__
  attribute, making it easier for Five not to stomp on existing methods.

* registered absolute_url view and IAbsoluteURL adapter for *

* zope.app.traversing is registered by default, to make special
  namespaces available (eg: @@, ++resource++)

* we now have resources (FileResource, ImageResource,
  PageTemplateResource) and directory resources.

* Zope 3 'StandardMacros' now works with Five as well.

* browser:page now correctly handles the allow_attributes and protects
  the named attributes on the view with the same permission used for
  the view.

* zopeconf.py will try to find etc/zope.conf on INSTANCE_HOME. This
  requires Zope 2.7.2, as earlier Zope versions have a bug in this
  area which causes them to look in lib/python/Testing.

* Exposed the Zope 3 event system to Five. A class can be made to send
  out event notifications using the five:sendEvents directive. Events can
  be subscribed to using the subscriber directive.

* Change in findProducts so that non-filesystem products are skipped.

Five 0.1 (2004-07-30)
=====================

Initial public release (mainly Martijn's work)