Changelog
=========

1.10.1 (2014-04-13)
-------------------

- waking instances is cheaper than processing a potentially huge vocabulary 
  for getting the title, therefore we handle reference fields seperately
  [zwork, agitator]

- Remove DL's from portal message templates.
  https://github.com/plone/Products.CMFPlone/issues/153
  [khink]


1.10.0 (2014-03-01)
-------------------

- Set logging level to DEBUG for warnings regarding new fields initialized on
  an existing object. INFO level can seriously spam the logs of a busy portal.
  [olimpiurob]

- Ported fix for #13833 from the 1.9.x branch for reindexObjectSecurity
  triggering an error when attempting to change the workflow of an object
  and it has deleted children
  [ichim-david]

- Do not use portal_interface tool but @@plone_interface_info (PLIP #13770).
  [ale-rt]

- Internationalized file size and content type on file and image widgets.
  (needs Plone>=4.3.3)
  [thomasdesvenain]

- Make sure @@at_utils.translate method always returns a string (empty or
  not) even when the passed value is an empty tuple (before, the returned
  value was an empty tuple or a non empty string).
  [gbastien]

- Do not add warning about new field initialized on an existing object in
  the transaction description, show this as a Zope log info message.
  [gbastien]

- Move calendar_macros, jscalendar, and date_components_support here
  from CMFPlone and plone.app.form.
  [bloodbare, davisagli]

- Replace deprecated test assert statements.
  [timo]

- ``Vocabulary`` method was not working with ``vocabulary_factory``
  and int values (IntDisplayList is required)
  [keul]

- Remove code and tests for the old discussion infrastructure
  (pre plone.app.discussion). The discussion tool will be deprecated in
  Plone 5.
  [timo]

- Fix nesting-error in InAndOutWidget. This fixes
  https://github.com/plone/Products.Archetypes/pull/29
  [pbauer]

- Return original error during validation when a field already has an
  error.  This avoids ``TypeError: 'bool' object has no attribute
  '__getitem__'`` in ``Products.CMFFormController.ControllerState.``
  [maurits]

- Various vocabulary fixes, mostly for translations and
  IntDisplayLists.
  [maurits]

- Make (non-valued) default value selected in select widget if no selection
  is given. This happens  especially with ReferenceFields.
  [thepjot]

1.9.4 (2013-08-29)
------------------

- Fixed error of validate_content_types when checking a field that was an
  instance of OFS.Image.File
  [ichim-david]

- fix transaction note so long notes do not bork the transaction
  [vangheem]


1.9.3 (2013-08-14)
------------------

- Avoid UnicodeDecodeError in @@at_utils.translate if the value contains
  special chars
  [gbastien]


1.9.2 (2013-08-13)
------------------

- Make some methods of TypesWidget unpublishable.
  [davisagli]

- Allow commas as decimal marks for inputs in float fields. The comma is then
  replaced by Python's standard decimal mark, the dot. Commas as separators
  between the decimal and fractional part are quite common in Central Europe.
  [rnix]

- Remove UIDResolver's resolve_url and protect UIDCatalogBrains' getObject.
  Protect ReferenceEngine's getReferences and getBackReferences.
  Add security declarations to functions in utils.py.
  (Security fixes from PloneHotfix20130618)
  [davisagli]

- Pass request to field validation so errors are translated properly.
  [davisagli]

- Add a transaction note when setting a default value for a field which doesn't
  have a storage yet
  [frapell]


1.9.1 (2013-05-29)
------------------

- Fix computed widget, use getParentNode to get the parent object instead of aq_parent,
  like in field.pt (avoid Unauthorized error)
  [jfroche]


1.9.0 (2013-05-23)
------------------

- Unmark creation_flag after object rename so we still know that the object
  is in the creation process in sub methods around the renaming functionnality
  (setId calls manage_beforeDelete, 'onDelete' event, ...)
  [gbastien]

1.8.7 (2013-04-06)
------------------

- Ignore missing file and blob uploads during content_type validation
  [pjstevns]

- Before validating the field, make sure you actually have the field
  objects for the type
  [vangheem]

- Fix issue #7556 (https://dev.plone.org/ticket/7556) by adding
  validation of uploaded blobs by checking the allowable_content_types
  attribute of a field
  [pjstevns]

- Provide fix for issue #9774 (https://dev.plone.org/ticket/9774)
  change import target and update order params in install_uidcatalog
  from setuphandlers has different order params
  [bogdangi]

- Provide sane defaults for minute_step, which is an integer
  everywhere else.
  [tomgross]

- Fix when using archetypes.schemaextender. the keyword widget call to
  field.getAccessor return None, so to let integrator do sth we
  need to said index name is equal to field name.
  [toutpt]

- Don't fail if contenttype can not be acquired (eg PFG)
  [tomgross]

- Translate selection values in base_view, fix #7627 (https://dev.plone.org/ticket/7627)
  [kiorky]

1.8.6 (2012-12-09)
------------------

- Add missing security declarations on the UIDResolver class.
  https://plone.org/products/plone/security/advisories/20121106/08
  [davisagli]

- Sanitize input to go_back script. This fixes
  https://plone.org/products/plone/security/advisories/20121106/11
  [davisagli]

1.8.5 (2012-11-15)
------------------

- Disallow downloading files via the at_download script if the user does not
  have the field's read_permission.  This addresses a security vulnerability
  discussed at http://plone.org/products/plone/security/advisories/20121106/17
  [davisagli]

- Add minute_step to CalendarWidget so we can define another minute step than
  hardcoded 5 for now
  [gbastien]

- If form tabbing is allowed, make sure we can still track the current fieldset
  if form submission returns to the edit form.
  [davisagli]

- Fix inline validation for items in the portal_factory.
  [davisagli]

- Change used event to update metadata during copy&paste fixes #13326 and makes
  1.8.5 compatible with LinguaPlone again.
  [do3cc]


1.8.4 (2012-10-15)
------------------

- Add support for non-KSS-based inline validation.
  [davisagli]

- Fixed some problems with IntDisplayList.
  [maurits]

- Update object creation date on paste; closes https://dev.plone.org/ticket/9896 .
  [davidblewett]

- Import ``getBrain`` from Products.ZSQLMethods and declare dependency for Zope
  trunk compatibility.
  [elro]

- Always add alt to image when shown in file widget
  [maartenkling]

1.8.3 (2012-08-23)
------------------

- Fixed i18n regression introduced in 1.8 in several templates.
  [vincentfretin]

1.8.2 (2012-08-18)
------------------

- tiff, psd and eps images scales are generated, in jpeg format.
  Fixes thumbnail view and main view for image contents with tif, psd or eps file.
  With tif files, scales were generated but couldn't be seen in Plone UI ;
  psd and eps scales weren't generated.
  Refs https://dev.plone.org/ticket/13077
  [thomasdesvenain]

- BaseObject.setId(): Remove leading/trailing space from given id.
  Fixes http://dev.plone.org/ticket/8338 (test still needed).
  [patch by stxnext, applied by kleist]

- Changed deprecated getSiteEncoding to hardcoded `utf-8`
  [tom_gross]

1.8.1 (2012-07-02)
------------------

- BaseObject.py, CatalogMultiplex.py, mimetype_utils.py, UIDCatalog.py:
  Don't use list as default parameter value.
  [kleist]


1.8 (2012-05-25)
----------------

- PEP 8 (ignoring W602, W604, E231, E241, E301, E302, E501 and E701).
  [hvelarde]

- Remove remaining hard-coded required markers. The 1.7.14 change only got
  one of them.
  [smcmahon]

- Moved form help from a div after form field labels to a span within. The
  purpose is to semantically associate the label to the form help so that
  it's more useful to a screen reader user.
  Note that sunburst's public.css and classic's form.css.dtml were
  simultaneously changed to assure block display of help in normal
  font-weight.
  Closes http://dev.plone.org/ticket/7212, an accessibility ticket.
  [smcmahon]

- Deprecated aliases were replaced on tests.
  [hvelarde]


1.7.14 (2012-05-07)
-------------------

- removed hardcoded required icon. It can and should be set by CSS as it is done
  in the formTabs
  [tom_gross]

- added 'placeholder' support for StringWidget, DecimalWidget and IntegerWidget
  [zopyx]


1.7.13 (2012-04-09)
-------------------

- Make sure inline editing calls target the
  id="parent-fieldname-$fieldName-$UID" on text fields.
  Closes http://dev.plone.org/ticket/12465
  [esteele]

- Fixed the KeywordWidget template and JavaScript source. the widget can
  now be used for fields with name different from "subject". Also multiple
  istances of this field can be used in the same page.
  See http://dev.plone.org/ticket/12218
  [keul]

1.7.12 (2012-02-07)
-------------------

- Animated GIF loses animation if Archetypes ImageField original_size property set
  see http://dev.plone.org/ticket/12488
  [anthonygerrard]

1.7.11 (2012-01-26)
-------------------

- Archetypes ImageField converts GIF to PNG when it scales
  see http://dev.plone.org/plone/ticket/12472 [anthonygerrard]

- Delete image also when field mutator is given a `None`
  argument. Previously, an image would only be deleted if given the
  string `"DELETE_IMAGE"`.

  Note that we still return immediately if provided an empty string.
  [malthe]

1.7.10 (2011-11-24)
-------------------

- Fix DateTimeField.set() to handle all date formats DateTime handles.
  See discussion at http://dev.plone.org/plone/ticket/10141
  [elro]

- Add render_own_label to TypesWidget. Allows "special" widgets that need to
  render their own label/help text for styling to override it. Closes
  http://dev.plone.org/plone/ticket/12355
  [ggozad, stefan]

- Add new viewletmanger that enable extra markup before the fieldsets
  [jfroche]

- Include UID of object in widget DOM ids, eg:
  id="parent-fieldname-$fieldName-$UID". This makes it possible to
  render multiple Archetype objects in the same view without duplicate
  DOM ids. This fixes http://dev.plone.org/ticket/9464
  [rochecompaan]

- Fix SelectionWidgets getSelected not return selected values if the value is a int
  with value 0
  [martior]

- Gracefully deal with ReferenceFields that had their referencesSortable flag
  changed after creation.
  [stefan]


1.7.9 (2011-09-19)
------------------

- Fix: Make sure user sees login form rather than an exception when trying
  to access /edit on an unauthorized context.
  This fixes http://dev.plone.org/plone/ticket/12056
  [davisagli]


1.7.8 (2011-09-16)
------------------

- Raise a NotFound exception when the at_download script cannot
  find the requested field.  I have seen the Google bot trying to
  index at_download/info@example.org and at_download/www.example.org,
  which is obviously wrong.
  [maurits]


1.7.7 (2011-08-23)
------------------

- Fixed http://dev.plone.org/plone/ticket/11387 (Missing & orphaned labels
  for check boxes and radio buttons) by deferring label generation for label,
  select and multi-select widgets to each widget's edit macro. In the case
  of the select and multi-select widgets, this allows the label to be generated
  (or not) once the format (checkbox, dropdown...) is known.
  Same for label for calendar widget.
  Thanks to mattbarkau and jdeluca for researching this and proposing a solution.
  [smcmahon]

- When checking isVisible in validation, use instance, not widget as argument.
  [tesdal]

- Do a double DateTime conversion to avoid timezone naive values.
  Refs http://dev.plone.org/plone/ticket/10141.
  [rossp]

- Avoid site error when we display a file whose mimetype is unknown.
  Refs http://dev.plone.org/plone/ticket/12061.
  [thomasdesvenain]

- Fixed initial content length used by textCounter. Length should be the length
  of a unicode string, not the utf-8 string.
  [vincentfretin]


1.7.6 - 2011-05-21
------------------

- Fixed DisplayList slices to work on Windows 64bit. This closes
  http://dev.plone.org/plone/ticket/11232.
  [hannosch]

1.7.5 - 2011-05-12
------------------

- Add forward compatibility with DateTime 3.
  [hannosch]

- Avoid flagging base units as changed, if their values didn't actually change.
  [hannosch]

- Clarify default value of `BaseUnit.filename` to be `None` instead of
  switching between `None` and an empty string in every request.
  [hannosch]

- Rights field has text/plain format only. (If no allowable_format specified
  for secondary fields, we get unexpected behaviour) This refs
  http://dev.plone.org/plone/ticket/9345.
  [thomasdesvenain]

- Put required field indicator inside the label tag, fixes #11726
  [dimboo]

1.7.4 - 2011-04-03
------------------

- Fix bug where a TextField's default_content_type was not respected when
  wrapping a non-BaseUnit value.
  [davisagli]

- Fixed test setup to work with ZCA-based GenericSetup profile registry.
  [davisagli]

- Fixed: all labels on edit form had 'display: block' css behaviour
  once there was keywords.
  [thomasdesvenain]

1.7.3 - 2011-03-02
------------------

- Fixed i18n of new keywords widget.
  [vincentfretin]

- Remove method docstrings in Referenceable and ReferenceEngine to prevent
  making them publishable.
  [davisagli]

- Fixed handling of Anonymous ownership in ExtensibleMetadata, where the
  ownership tuple is None. Also triggered for views on FactoryTool-wrapped
  objects.
  [mj]

1.7.2 - 2011-02-04
------------------

- Merge PLIP 11017: Tags MultiSelectionWidget w/scrollbar & checkboxes.
  [esteele]

1.7.1 - 2011-01-11
------------------

- Include plone.app.viewletmanager package to clear up plone.app.layout test
  failures.
  [esteele]

1.7 - 2011-01-03
----------------

- Merged optimizations from the `experimental.atrefspeedup` distribution into
  the reference engine. We avoid intersections with the large relationship
  index and loading the persistent reference objects where possible.
  [hannosch]

- Fix Referenceable, UIDCatalog to support references to non-Archetypes-based
  content.
  [toutpt]

- Use the new `plone.uuid` package to generate UUIDs. The UID() method is now
  an alias for ``IUUID(obj)``, which is the new preferred means of looking up
  a UUID, since this can also work for non-Archetypes content. Archetypes
  provides an IUUID() adapter that returns the value stored in the Archetypes
  UID attribute. For new content, UUIDs are generated using
  `plone.uuid.interfaces.IUUIDGenerator`, although old content will not (and
  need not) be migrated.
  [optilude]

- Handle getCharset() returning None in Field.encode/decode.
  [elro]

- Avoid various deprecation warnings under Zope 2.13.
  [hannosch]

- Fixed a SyntaxWarning when using assert in the migrations module.
  [deo]

- Cleaned OrderedBaseFolder by using OFS implementation of OrderSupport.
  [tom_gross]

- Depend on Zope 2.13.1
  [tom_gross]

- Fixed textCounter JavaScript to work with fieldnames with hyphen.
  API of textCounter-method changed. Second parameter takes now
  the name of the counterfield, not the DOM object itself.
  https://dev.plone.org/plone/ticket/11334
  [tom_gross]

1.6.5 - 2011-02-25
------------------

- Remove method docstrings in Referenceable and ReferenceEngine to prevent
  making them publishable.
  [davisagli]

- Handle getCharset() returning None in Field.encode/decode.
  [elro]

- Avoid various deprecation warnings under Zope 2.13.
  [hannosch]

- Fixed a SyntaxWarning when using assert in the migrations module.
  [deo]

- Fixed textCounter JavaScript to work with fieldnames with hyphen.
  API of textCounter-method changed. Second parameter takes now
  the name of the counterfield, not the DOM object itself.
  http://dev.plone.org/plone/ticket/11334
  [tom_gross]

- Fixed handling of Anonymous ownership in ExtensibleMetadata, where the
  ownership tuple is None. Also triggered for views on FactoryTool-wrapped
  objects.
  [mj]

1.6.4 - 2010-11-06
------------------

- Speed up the unicodeTestIn skin script.
  [maurits]

- Fixed chameleon incompatibilities.
  [swampmonkey]

1.6.3 - 2010-09-30
------------------

- Fixed TypeError introduced in the previous fix for the selection
  widget when the passed value was None.
  [maurits]

1.6.2 - 2010-09-28
------------------

- Fixed error in the at_selection_widget view of a SelectionWidget if
  the vocabulary has integer keys (usually with an IntDisplayList).
  When a value has been filled in and the form is redisplayed
  (e.g. due to missing required input on a different field) you would
  loose the filled in value as it is submitted as a string, which is
  not in the vocabulary.
  (Fix forward ported from branch 1.5.)
  [maurits]

1.6.1 - 2010-07-18
------------------

- Avoid duplicated import in `OrderedBaseFolder.py`. This closes
  http://dev.plone.org/plone/ticket/10425.
  [hannosch]

- Downgrade a user warning to a debug message about explicit permissions set
  on custom accessor and mutator methods.
  [hannosch]

- Removed outdated ``content_types.css`` used in the standard reference widget.
  [hannosch]

1.6 - 2010-07-01
----------------

- Provide class default for new referencesSortable property.
  [sureshvv]

1.6b11 - 2010-06-13
-------------------

- Avoid deprecation warnings under Zope 2.13.
  [hannosch]

- Avoid testing dependency on zope.app.testing.
  [hannosch]

1.6b10 - 2010-05-31
-------------------

- Fixed Chameleon compatibility of boolean widget.
  [hannosch]

- Fixed invalid XHTML in base_view.
  [hannosch]

1.6b9 - 2010-05-01
------------------

- Fix another regression in my CalendarWidget fix, to make it handle 12 p.m.
  correctly when using a 12-hour clock. Fixes
  http://dev.plone.org/plone/ticket/10487
  [davisagli]

- Simplify conversion of `DateTime` instances to non-ISO8601 representation.
  Refs http://dev.plone.org/plone/ticket/10141
  [witsch]

- Allow ReferenceFields to be sortable when referencesSortable is set True.
  [cah190,esteele]

1.6b8 - 2010-04-10
------------------

- Fix a regression in my CalendarWidget fix, to make it handle hour '12'
  correctly when using a 12-hour clock.
  [davisagli]

1.6b7 - 2010-04-10
------------------

- Make sure the CalendarWidget returns string representations of datetimes in
  a format that will be treated by the DateTimeField setter as being in the
  local timezone.
  [davisagli]

1.6b6 - 2010-04-08
------------------

- Products.Archetypes.Field.DateTimeField.set: DateTime 2.12 changed the
  ISO-string behavior. Convert date values to a non-ISO8601 representation, so
  that DateTime respects the server's timezone and the date's "Daylight Saving
  Time" (DST) instead of assuming naive timezones.
  Refs http://dev.plone.org/plone/ticket/10141
  [thet]

- Replace the required field indicator image with a unicode box.
  Refs http://dev.plone.org/plone/ticket/10352
  [davisagli, limi]

- Update `DateTimeField` mutator to also accept value with a time zone, but
  still add the local zone if none was given.
  Refs http://dev.plone.org/plone/ticket/10141
  [witsch]

- fixed broken warnings.warn() parameters in Schema/_init__.py
  [ajung]

1.6b5 - 2010-03-08
------------------

- Also treat effective/expiry dates specified via the `DateTimeField` widget
  to be from the local time zone.
  Refs http://dev.plone.org/plone/ticket/10141
  [witsch]

1.6b4 - 2010-03-05
------------------

- Fix issues with sliding modification/publishing dates by using `DateTime`'s
  `ISO8601` method instead of `ISO`, which doesn't include time zones.
  Refs http://dev.plone.org/plone/ticket/10140, 10141 & 10171.
  [davisagli, witsch]

- Made base_view work for public items in private folders. This closes
  http://dev.plone.org/plone/ticket/9040.
  [hannosch]

- Avoid str() on unicode objects before passing them to guess_content_type.
  [deichi]

- More HTML validity fixes.  The checkbox widget needs an element with
  an id for the label to attach to.
  [rossp]

- Tolerate some cases where fieldName isn't defined yet.
  [rossp]

- The AT widget renderer has potentially very useful support for rendering a
  widget for a field under a different name than the field name. But this
  support has never been fully integrated into the rest of the AT widget
  machinery. Also fixes validation errors with duplicate element ID's with
  widget uses such as the Topic criterion edit form.
  [rossp]

- More useful description of what the description/summary is actually good for.
  [limi]

1.6b3 - 2010-02-17
------------------

- Updated templates to follow recent markup conventions.
  References http://dev.plone.org/plone/ticket/9981.
  [spliter]

- Let the file widget produce valid HTML. This closes
  http://dev.plone.org/plone/ticket/9948.
  [hannosch]

- Ported the GenericSetup handlers for the reference and uid catalog from
  LinguaPlone into this package.
  [hannosch]

- Sanitize the behavior of the 'alt' and 'title' attributes for the
  image_field.tag function. This closes http://dev.plone.org/plone/ticket/8756.
  [dukebody]

- Move the fields and fieldsets calculations from base_edit to the view class.
  There's no good reason why we need to do nested list comprehensions in a
  template.
  [hannosch]

1.6b2 - 2010-01-29
------------------

- Use the http://dev.plone.org/plone/changeset/33504 "unordered" ordering
  adapter for former "Large Plone Folder" content. This references
  http://dev.plone.org/plone/ticket/9791
  [witsch]

1.6b1 - 2010-01-25
------------------

- Portal variable no longer available via global definitions - fixed in skin
  widgets/reference.pt.
  [thet]

- Inserted explicit i18n:translate for the form tabs to make sure Chameleon
  does the right thing. This fixes http://dev.plone.org/plone/ticket/9224
  [limi]

- Removed some test helper constants, support for Zope 2.9 has long gone.
  [hannosch]

- Stop using the session_restore_value script. We never create a session in the
  first place, so looking for one is pointless.
  [hannosch]

- Don't render an empty select tag when there are no keywords defined.
  This references http://dev.plone.org/plone/ticket/9222
  [limi]

- There's no attribute wrap=off for textareas in keywords. Removed. References
  http://dev.plone.org/plone/ticket/9222
  [limi]

- Avoid needless zodb writes while creating content in the
  portal_factory.  Patch by hazmat.  Merged from 1.5 branch.
  Fixes http://dev.plone.org/plone/ticket/9672
  [maurits]

- Actually use IImageField, and add markers for other field types just to be
  consistent.
  [optilude]

1.6a4 - 2009-12-27
------------------

- Cleaned up manage_options for base types. No longer show unsupported ZMI
  screens. The functionality is still present for those that know its use and
  limitations.
  [hannosch]

- Respect the use_combined_language_codes setting from portal_languages if
  PloneLanguageTool is installed. Fixes http://dev.plone.org/plone/ticket/8907.
  [erico_andrei, hannosch]

- Let content_types.css.dtml no longer rely on content_icon.
  [hannosch]

- Redirect to the object view URL when the user is coming from the edit view of
  the object and clicks the Cancel button. This closes
  http://dev.plone.org/plone/ticket/8853.
  [dukebody, thanks hannosch and wichert]

- Fixed package dependencies.
  [hannosch]

1.6a3 - 2009-12-02
------------------

- Fix a regression from my adjustments to AT factories, to make sure that the
  reference engine still gets initialized before initializeArchetype is called.
  [davisagli]

1.6a2 - 2009-11-17
------------------

- Changed the language field in ExtensibleMetadata to respect the default
  language set on the portal_languages tool and remove incorrect "site default"
  from the "Language neutral" term.
  [hannosch]

- Updated readme and fixed reST errors in changes.txt.
  [hannosch]

1.6a1 - 2009-11-17
------------------

* Remove version.txt and functions that read it.
  [hannosch]

* Modified the auto-generated type factories for compatibility with CMF 2.2.
  The _constructInstance method of CMF FTI objects now takes care of raising
  object events for old-style factories, so AT factories no longer raise
  their own events.
  [davisagli]

* Restructured and restyled inandout widget to fix issue with rtl scripts.
  http://dev.plone.org/plone/ticket/5660
  [emanlove]

* Replaced the css_slot with the style_slot, as the deprecated
  css_slot is now really removed in Plone 4.
  [maurits+maartenkling]

* Sanitized the log message handling. Added a simple log module based on
  Python's logging module. The log methods in the debug module calculate
  the entire stack frame on *every* log call.
  [hannosch]

* "Categories" are now "Tags", in line with common usage and terminology.
  [limi]

* Changed the test_metadata tests regarding dates to change reasonable times.
  Times around the year 1000 had somewhat different timezones.
  [hannosch]

* Adjust to refactoring of CMFCatalogAware and PortalFolder's use of it.
  [davisagli]

* Fix for missing short-name field due to removal of globals.
  http://dev.plone.org/plone/ticket/9429
  [esteele]

* Deprecated our own IOrderedContainer interface in favor of the version
  from OFS. We do require Zope 2.7 for a while now ;)
  [hannosch]

* Declare package dependencies and fixed deprecation warnings for use
  of Globals.
  [hannosch]

* Removed PloneCompat module and moved transaction_note to utils.
  [hannosch]

* Removed tabindex and Iterator from the template scopes. Their use was
  discouraged long ago.
  [hannosch]

* Removed utils.getPkgInfo and `__pkginfo__`. We use setuptools as our
  distribution and package information platform.
  [hannosch]

* Removed unsupported AggregatedStorage. You can easily convert this into
  an add-on package if you use this storage.
  [hannosch]

* Fixed remaining test failures caused by CMFPlone dependencies. Moved
  normalizeString method to the edit view instead of requiring plone_utils.
  [hannosch]

* Created a separate layer for Archetypes, that does not depend on the
  Five ZCML layer anymore. AT tests can finally be run in isolation of other
  installed packages. Fixed a couple of test failures which now have a
  deterministic output.
  [hannosch]

* Removed a couple of assert statements which wouldn't help in any way.
  [hannosch]

* Changed all references to `here` in all templates to `context`.
  [hannosch]

* Removed reference graph visualization based on graphviz. It is
  unmaintained and certainly not a core feature.
  [hannosch]

* ``TextField._process_input doesn't forward **kwargs`` this fix
  https://dev.plone.org/plone/ticket/7597 [garbas]

* Traverse to ``plone_utils`` tool instead of relying on it being
  available in global variable scope. [malthe]

* Do not add empty schemas into a CompositeSchema anymore.
  This closes http://dev.plone.org/plone/ticket/7584.
  [hannosch]

* Removed deprecated _guessPackage method. This closes
  http://dev.plone.org/plone/ticket/7569.
  [davisagli]

* Normalizing the "id" attribute for fieldsets and fieldset legends, so
  javascript schemata selection works for schematas that have spaces in
  the title. This closes http://dev.plone.org/plone/ticket/7999.
  [rsantos]

* Added a missing alt tag to the image in the file widget. This closes
  http://dev.plone.org/plone/ticket/7763.
  [hannosch]

* Removed the rebuild catalog tab from the reference and uid catalog. The
  method is still there and can be accessed via the URL, but you won't
  accidentally click on a tab in the ZMI anymore and have your catalog be
  rebuilt without a warning. This closes
  http://dev.plone.org/plone/ticket/8093.
  [hannosch]

* Fixed the SelectionWidget view to keep the order of the passed in values
  on output and not sort after arbitrary Python internal dict order. This
  closes http://dev.plone.org/plone/ticket/7272.
  [hannosch]

* Fixed a macro expansion error when customizing templates which used
  the folderlisting macro from base.pt. This closes
  http://dev.plone.org/plone/ticket/6672.
  [hannosch]

* Purged old Zope 2 Interface interfaces for Zope 2.12 compatibility.
  Consider branching before this revision if release required before Plone 4.
  [elro]

* Avoid a failure in addCreator when called on an object without an
  Acquisition chain.
  [hannosch]

* Remove the long long deprecated 'type' class variable, which was
  replaced with 'schema'.
  [wichert]

* Allow fields to supply their own PdataStreamIterator. This closes
  http://dev.plone.org/plone/ticket/7572.
  [hannosch]

* Fixed off-by-two error in transaction_note. This refs
  http://dev.plone.org/plone/ticket/7610.
  [hannosch]

* Add a new publish traverse that exposes image fields and their scales.
  This removes the need for content types to have a __bobo_traverse__ method.
  [wichert]

* Move export/import step registrations to exportimport/configure.zcml. This
  change requires CMF trunk.
  [stefan]

* Added dependencies to GenericSetup profile.
  [hannosch]

* Removed five:implements statements from ZCML, which are already done in the
  classes themselves.
  [hannosch]

* Minor tweak in the calendar widget.
  [deo, hannosch]

* Converted Archetypes tests to use CMFTestCase as a base again, instead of
  PloneTestCase. Fixed all tests / code to actually work without Plone
  installed.
  [hannosch]

* Removed Archetypes Site customization policy.
  [hannosch]

* Removed deprecated code.
  [hannosch]

* Moved rejectAnonymous script from CMFPlone over, as it is still used
  inside base_metadata.cpt.
  [hannosch]

1.5.16 - unreleased
--------------------

* Fix the ImageWidget's preview_tag method to fetch the available scale
  sizes correctly using the field's getAvailableSizes method, rather than
  assuming its sizes attribute is a dictionary, since callables are allowed.
  [davisagli]

* Sanitize the behaviour of the 'alt' and 'title' attributes for the
  image_field.tag function.
  This closes http://dev.plone.org/plone/ticket/8756.
  [dukebody]

1.5.15 - 2010-01-25
-------------------

* Be more defensive in our assumptions about the Acquisition context of new
  items. This closes http://dev.plone.org/plone/ticket/10088.
  [hannosch]

1.5.14 - 2010-01-14
-------------------

* FixedPointField required validation now counts zero as a value, and the
  default default value is now None like other numeric fields, rather than
  0.00.  This closes http://dev.plone.org/old/plone/ticket/9414.
  [kilobug, davisagli]

* Pass request when testing validation in test_fields.
  [ccrownhart, jnelson, tesdal]

* Use the same default messages than in Plone for label_effective_date and
  help_expiration_date msgids. There is no new strings to translate.
  See http://dev.plone.org/plone/ticket/9633
  [vincentfretin]

1.5.12 - 2009-09-06
-------------------

* Replaced fti/title_or_id by fti/Title in edit_macros.pt.
  This fixes content type title translation when the i18n domain is different of plone.
  Note that the Title method defined in Products.CMFCore.TypesTool.TypeInformation
  takes care of id fallback if the title is not defined.
  [vincentfretin]

* Fix mapping for an i18n string in Field.validate_vocabulary. This closes
  http://dev.plone.org/plone/ticket/9287
  [vincentfretin]

* BaseObject.getCharset() now supports extraction of the default_charset
  for plain CMF sites.
  [ajung]


1.5.11 - 2009-03-30
-------------------

* When saving an AT object only validate the visible fields in the schema.
  (avoids hidden and invisible ones). Fixes
  http://dev.plone.org/plone/ticket/7964
  [massimo]

* Fix XML validity in base_edit.
  [mborch]

* Extinguishing last use of document_actions and add missing
  documentFirstHeading class in the metadata_macros template.
  [limi]

* check unrendered widget in KeywordWidget process_form.
  Fix for http://dev.plone.org/plone/ticket/8738
  [gotcha]

* Add implements-flag for ICatalogableDublinCore to ExtensibleMetadata.
  [wichert]


1.5.10 - 2008-09-30
-------------------

* Fire WebDAVObjectInitializedEvent/WebDAVObjectEditedEvent when
  content is created/edited via PUT/MKCOL. This is part of the fix
  for http://dev.plone.org/plone/ticket/7338
  [sidnei]

* A FixedPointField with a value between -1 and 0 (e.g. 0.5) is now
  stored as (0, -5) and shown correctly instead of as +0.5.  This
  closes http://dev.plone.org/plone/ticket/7549
  [maurits]

* Added search macro to zid.pt. This closes
  http://dev.plone.org/plone/ticket/7601
  [dukebody]

* Don't bail if fieldsets is empty in 'base_edit'.  This closes
  http://dev.plone.org/plone/ticket/7858
  [nouri]

* Backported the fix for id attribute of schematas with spaces.
  This closes http://dev.plone.org/plone/ticket/7999.
  [rsantos]

* Backported the fix for CatalogMultiplex.reindexObjectSecurity to check
  for the specific CMF catalog interface before trying to update the
  security stuff. This closes http://dev.plone.org/plone/ticket/8271.
  [deo]

* Make ExtensibleMetadata implement the IMutableDublinCore interface.
  [wichert]

* Fixed small grammar error in Field.py validation message.
  [hannosch]


1.5.9 - 2008-07-02
------------------

* According to rfc1806 the header is Content-Disposition not
  Content-disposition. Case matters, at least for IE6 (and results in
  IE6-typical strange effects).
  [jensens]

* Add a new archetypes.edit.afterfieldsets viewlet manager which
  can be used as a replacement of the extra_bottom slot on the edit
  view.
  [wichert]

* Add 'keepReferencesOnCopy' option to ReferenceField, which allows
  control over whether references of that field are copied on copy
  or not.  This defaults to False.
  [daftdog, nouri]

* Backported the fix for the KeywordWidget 'checkbox' format support.
  [deo]

1.5.8 - 2008-04-21
------------------

* Fix code in 'Field.validate_vocabulary' that would validate a set
  of values OK if the last element was in the vocabulary, but others
  weren't.
  This closes http://dev.plone.org/plone/ticket/7809
  [nouri]

* Change BooleanField to return actual booleans instead of the raw value.
  [wichert]

* Fixed validation messages to translate the inner parts of the mappings
  explicitly. This fixes the '${label_foo} is required, please correct.'
  messages.
  [hannosch]

* Remove invalid leading whitespace in hrefs.
  [wichert]

* Fixed NameError in Field.py when an error occurs in a transform. This
  closes http://dev.plone.org/plone/ticket/7905.
  [hannosch, sidnei]

* Add a new preview_scale property to ImageWidget. This is used by the edit
  view when showing the image. If the scale is not present the previous
  logic (only show if the image is <100kB in size) is used.
  [wichert]

* Add a new formQuestion class to field labels.
  [dannyb]

* Don't show the 'next' button if we allow tabbing, i.e. we're
  displaying all schematas on the same page.
  Fixes http://dev.plone.org/plone/ticket/6936
  [nouri]

1.5.7 - 2008-03-08
------------------

* Apply patch in http://dev.plone.org/plone/ticket/7777
  [nouri]

* Fixed calculation of default fieldset when the "default" schemata only
  contains invisible fields.
  [witsch]

1.5.6 - 2008-02-15
------------------

* Add a plone.locking unlock subscriber for IObjectInitializedEvent. This
  ensures non portal_factory (and LinguaPlone translations) are unlocked
  after creation.
  [ldr]

* Show the plone.abovecontentbody viewlets once per body instead
  of once per field.
  [wichert]

* Add checkbox in updateSchemaForm to remove the instance schemas.
  This is possibly needed when going from Archetypes 1.5.1 or
  earlier to a newer version.  Should be safe unless you know that
  you have content items with local schemata that you need to keep.
  [maurits]

* In mkDummyInContext use _setObject instead of setattr.  This means
  dummy content in the tests shows up when using
  context.objectIds().
  [maurits]

* Remove test dependency on ArchetypesTestUpdateSchema as this does
  not work on Zope > 2.7.  Unused tests removed.
  [maurits]

* Changed 'form.inlineForm' in 'archetypes_kss/at.kss' to use
  'kssSubmitForm' instead of simply 'currentForm'. This is needed
  to support multi-valued form variables in inline editing.
  This is dependent on http://dev.plone.org/archetypes/changeset/9200
  [raphael]

* Calling `getDefault` twice is unnecessarily slow and could potentially
  cause bugs when a `default_method` returning an object is used for the
  field.  In that case the field would get initialized with one instance,
  but a second, different instance would be returned from the call to `get`.
  [witsch]

1.5.5 - 2007-12-29
------------------

* If allow_discussion is set as an attribute on a content type class,
  ExtensibleMetaData.allowDiscussion() may hit a bug in CMF 2.1.0's
  CMFDefault.DiscussionTool.overrideDiscussionFor() that tries to delete
  a missing attribute, causing an AttributeError. This may be avoided by
  using GS instead of a class attribute to control discussion on the
  type, but there's no reason I can see to break old code. Fixed by
  catching exception. Closes http://dev.plone.org/archetypes/ticket/761
  [smcmahon]

* Archetypes should inform the widgets when processing the form in the
  validation phase.
  This closes http://dev.plone.org/archetypes/ticket/760
  [deo]

* Backported the fixes from r8665 and r8804: zope.i18n.translate calls
  should use the request, not the instance itself as the context.
  [deo]

1.5.4 - 2007-11-07
------------------

* Made the getSelection method in browser/widgets.py return the selection
  in the character set of the vocabulary -- not the input value.
  Fixes issue #759, UnicodeDecodeError with selection/multiselection
  widgets.
  [smcmahon]

* CalendarWidget would not return a value without JavaScript support from
  calendar_formfield.js. This is disabled for unauthenticated users in
  Plone 3. Added a process_form override method to CalendarWidget to
  assemble the input components.
  [smcmahon]

* Revert http://dev.plone.org/archetypes/changeset/8683 - Dont skip the
  'metadata' schema in base_edit. Wichert and I agreed thats this is
  wrong. Specially inside a bug-fix release. If theres a good reason to
  remove the metadata from fieldsets, we can do it in the next release.
  The UI was broken as well, btw.
  [jensens, wiggy]

1.5.3 - 2007-10-07
------------------

* Skip the 'metadata' schema in base_edit, like we used to do it
  pre-1.5.  Also, do not render fieldset and legend elements when
  we're only displaying one fieldset, i.e. the 'default' one.
  [nouri]

* Provide bbb alias for ReferenceEngine.UIDCatalog. This closes
  http://dev.plone.org/plone/ticket/6507.
  [hannosch, naro]

* Restore use of the defaultLanguage method for the language field and
  undeprecate it. This is done for two reasons: there is no alternative
  to this feature, which LinguaPlone requires, and there never was a
  deprecation warning.
  [wichert]

* Fix clicking on the "next" or "previous" button raises
  'Non-existing fieldset: None'.
  http://dev.plone.org/archetypes/ticket/754
  [encolpe]

* Forward-ported the disable-delete-option-when-required feature of image
  widgets from 1.4.
  [mj]

* Re-added UIDCatalog import to ReferenceEngine for sites migrating from
  Plone 2.1 (where the UIDCatalog is a class in that module).
  [mj]

1.5.2 - 2007-09-12
------------------

* Changed browser/configure.zcml to update unnecessarily restrictive
  permissions for two widget views. These were requiring ModifyPortalContent
  even though they exposed no private information, thus making the widgets
  less useful outside Archetypes.
  [smcmahon]

* Made OrderedContainer implement OFS.interfaces.IOrderedContainer.  Fixes
  bug #7084 in Plone issue tracker.
  [rocky]

* Update schema handling code to always use self.Schema() to get the current
  schema and never (re)set self.schema.
  [wichert]

* Fix the change made in 1.5.1 which produced invalid XHTML
  [limi]

1.5.1 - 2007-09-10
------------------

* Updating the AT widget views to be rendered inline, so they can be
  invoked in View mode by KSS without any special magic. This is a
  prerequisite for bug #6705 in the Plone issue tracker.
  [limi]

1.5.0 - 2007-08-16
------------------

* ImageField.set used 'size' attribute instead of 'get_size' API.

* added support for default DCMI "Right" using the portal_metadata
  tool. This closes http://dev.plone.org/plone/ticket/5831.
  Remark: overall support of portal_metadata is very poor.
  [jensens]

* Removed hard dependency on the plone.locking package.
  [hannosch]

* Removed a hard dependency on the plone.i18n package in Field.py.
  [hannosch]

* Don't attempt to convert to 'text/plain' in
  Archetypes.Field.FileField.getIndexable if there's no path to it.
  This avoids loading the whole file contents into memory for these
  cases.
  [nouri, drjnut]

1.5.0-rc3 - 2007-07-27
----------------------

* Fixed the msgid for the description of the location field. This closes
  http://dev.plone.org/plone/ticket/6797.
  [hannosch]

1.5.0-rc2 - 2007-07-13
----------------------

* Added a special fieldproperty type for reference fields, with a more
  generic base class for any field accessors/mutators that need to acquire
  tools. This uses a workaround for the fact that not all tools are
  utilities (yet) and acquisition doesn't work properly in property
  descriptors.
  [optilude]

* Fixed allowDiscussion handling in ExtensibleMetadata.
  This closes http://dev.plone.org/plone/ticket/5977.
  [hannosch]

1.5.0-rc1 - 2007-07-04
----------------------

* Removed all utility registrations.
  [hannosch, wichert]

* Fix incorrect test for value added to a display list. This fixes
  http://dev.plone.org/plone/ticket/6634
  [wichert]

* Corrected wrong i18n markup in edit_macros. This closes
  http://dev.plone.org/plone/ticket/6583.
  [hannosch]

* Updated keywords related i18n messages to reflect their new name.
  [hannosch]

1.5.0-b5 - 2007-05-05
---------------------

* Never validate fields that are not writeable.
  [optilude]

* Remove colors from log entries.
  [wichert]

1.5.0-b4 - 2007-04-28
---------------------

* Added an ATDateTimeFieldProperty version of the ATFieldProperty mentioned
  below. This takes care of conversion between Zope 2 DateTime's and Python
  datetime objects.
  [optilude]

* Convert filename to ASCII in Content-Disposition header on
  download. This fixes #620.
  [nouri]

* Added Products.Archetypes.fieldproperty.ATFieldProperty, which can be
  used analogously to zope.schema.fieldproperty.FieldProperty for Archetypes
  fields. See the doctest in that module for details.
  [optilude]

* Added an at_textarea_widget view and used it instead of the checkSelected,
  unicodeEncode and lookupMime scripts on the textarea and visual widgets.
  [hannosch]

* Replaced the getSelectionWidgetSelected script introduced in beta2 with the
  at_selection_widget browser view. This allows us to use a Python generator
  and safes us from iterating over all values in the vocabulary, when the
  first value is already the selected one.
  [hannosch]

* Make the boolean widget work correctly with or without javascript.
  [elvix]

* Removed the default value for starting_year from the CalendarWidget. This
  ensures the value can be looked up dynamically from the properties.
  [hannosch]

* Disable the content border when an object is being added using
  portal_factory. These tabs don't make sense in an "add form" scenario,
  and were causing errors.
  [optilude]

1.5.0-b3 - 2007-03-20
---------------------

* Refactored installation code. This is now based on a GenericSetup extension
  profile instead of the old Extensions/Install.py way.
  [hannosch]

* Removed tests/runalltests.py and tests/framework.py as they have
  outlived their usefulness. To run tests use Zope's testrunner:
  ./bin/zopectl test --nowarn -s Products.Archetypes
  [stefan]

* Added the Location element (also known as Coverage in Dublin Core) to the
  standard metadata set. This allows lots of interesting things like
  geotagging of images, location notices on news items, etc.
  [limi]

1.5.0-b2 - 2007-03-05
---------------------

* Added a new LanguageWidget that does the same as the SelectionWidget but
  does not try to translate the vocabulary using the normal translation
  machinery. It should use the Zope 3 locales information instead.
  [hannosch]

* Speed up the selection widget considerably by calculating the selected
  values ones and not for every value in the selection using a new
  getSelectionWidgetSelected script.
  [hannosch]

* Modernized some code in checkSelected and unicodeEncode scripts.
  [hannosch]

* Removed explicit invocations of the translate script from various
  vocabulary widgets. The getValue method of a vocabulary returns a Message
  which can be translated by the usual TAL engine.
  [hannosch]

* Allow field defaults to be looked up using an adapter of the instance
  to IFieldDefaultProvider, with a name that is the same as the field name
  in question (only if no default or default_method was set for that
  field). This allows dynamically determined, context-sensitive defaults
  without having to add a method into the class itself.
  [optilude]

* Make it possible to use vocabulary_factory for fields, giving the name
  of a Zope 3 style named IVocabularyFactory utility. This means that
  Archetypes fields can use more general Zope 3 vocabularies, and share them
  with e.g. formlib forms.
  [optilude]

1.5.0-b1 - 2007-02-27
---------------------

* Fixed deprecation warnings for minimalpath in skins install code.
  [hannosch]

* Updated error message handling in validation to use Zope3-style translation,
  which is available in the latest PTS.
  [hannosch]

* FileField is now a bit cleverer about indexing.  If you set a file
  field to be 'searchable' it will now per default attempt to
  convert it to plain text on indexing.
  [nouri]

* Replaced status message handling with new approach based on
  Products.statusmessages. This refs http://dev.plone.org/plone/ticket/6131.
  [hannosch]

* Automatic title to id generation is now optionally based on the plone.i18n
  package instead of requiring the plone_tool.
  [hannosch]

* Merged the plip174-reusable-i18n branch. This adds the optional ability to
  control the language metadata on objects by an utility approach based on
  plone.i18n.
  [hannosch]

1.5.0-a2 - 2007-02-06
---------------------

* Removed the typeDescription and typeDescMsgId attributes from all content
  classes. These were only used on the edit form which has been altered to
  use the Description method from the type information instead.
  [hannosch]

* Removed some BBB code in generator/i18n.py.
  [hannosch]

* Adjusted some code to work better with the CMF 2.1 tools as utilities work.
  [hannosch]

* Fix failing test in traversal.txt:184, where an acquired template
  overrode a view.  Added logic to BaseObject.__bobo_traverse__ to
  make sure the right order is respected.
  [nouri]

* Turned off debug mode for writeable checks on fields per default, as this
  caused a major performance problem with KSS.
  [hannosch]

* Made it work with the kss merge in. Some templates are modified,
  extra markup is added and a kss decorator view is defined that is
  overwritten if kss is loaded. Currently the addability support in
  the reference and inandout widgets has its javasacript commented
  out, this needs to get fixed asap.
  [ree]

* By default base_edit will show all fields of all schemas on one page now.
  The old behaviour can be kept by marking a content type with the
  IMultiPageSchema interface.
  [fschulze]

* Made ATSiteTestCase inherit its layer from PloneTestCase.
  [stefan]

* Fixed a DeprecationWarning for listContentTypes(by_metatype=1).
  [hannosch]

1.5.0-a1 - 2006-10-25
---------------------

* Cleaned up event usage: IObjectCreatedEvent is now fired during generated
  constructor, and two custom events are fired during processForm() -
  IObjectInitializedEvent and IObjectEditedEvent. Both inherit from
  IObjectModifiedEvent, and the Initialized event is fired on the first
  save, whereas the Edited event is fired on subsequent saves.
  [optilude]

* Applied patch from George Lee and modernised code a bit for Zope 2.10,
  to support event-based pre- and post-validation. See interfaces/_event.py
  [optilude]

* Cleaned up VarClassGen a bit to make it potentially useful for people
  needing it as part of a custom ISchema adapter.
  [optilude]

* Made it possible to look up AT schema using an adapter from self
  to ISchema. See note in Schema/factory.py.
  [whit, optilude]

* Fix #585 by providing the right arguments for testCondition in templates.
  [nouri]

* Added small optimizations for DisplayLists to not translate values of type
  Message by itself, added some tests.
  [hannosch]

* Deprecated explicit msgid attributes on DisplayLists. Store Zope3 Messages
  directly as values instead to get the same behavior.
  [hannosch]

* Deprecated the generator.i18n module. We use the translate method of the
  GlobalTranslationService directly for now, as long as we support
  PlacelessTranslationService. Ultimately this should be replaced by calls
  to 'from zope.i18n import translate'
  [hannosch]

* Removed outdated message catalogs and changed the few remaining texts in the
  'archetypes' domain to use the 'plone' domain instead. The translation
  files can be found as usual as part of the PloneTranslations product.
  [hannosch]

* Changed BaseObject and ExtensibleMetadata to use new Message approach for
  internationalization of labels and descriptions.
  [hannosch]

* Optimized the basic widget for the new default case of labels and
  descriptions as Messages. These are not translated automatically anymore
  but this is delayed to be triggered by the time they are rendered in a TAL
  context. This will ultimately safe quite some translation machinery hackery.
  [hannosch]

* Modernized DisplayLists to use isinstance instead of type checking. Now
  derived string types like Messages are allowed as keys and values as well.
  [hannosch]

* Removed last bits of dependency version checks from __init__.py as well as
  support for INSTALL_DEMO_TYPES. These types are not meant to be used in a
  live site but only serve as code examples and are used during test runs.
  [hannosch]

* Renamed sample_content profile to sample_types as it only includes types
  but no content ;) This profile is not registered globally anymore but only
  during test runs, as these types aren't meant to be used for anything else.
  [hannosch]

* Marked Base* as implementing their Z3 interfaces.
  [hannosch]

* Based tests on PloneTestCase with extension profile support for site setup.
  [hannosch]

* Added (Default) alias to base_view to all sample types, so calling them will
  still work in CMF >= 2.0.
  [hannosch]

* Removed deprecated spec argument from listFolderContents and
  folderlistingFolderContents of BaseFolderMixin.
  [hannosch]

* Changed import of TAL.ndiff to zope.tal.ndiff.
  [hannosch]

* Cleaned up XXX comments, converted non-critical ones to TODO.
  [hannosch]

* Removed five:traversable from configure.zcml as it is not needed anymore for
  Zope 2.10, which we require now.
  [hannosch]

* Cleaned up some comments, removed a pdb and an unused zLOG import.
  [hannosch]

* Removed some more BBB code.
  [hannosch]

* Removed deprecated ArchetypesTestCase.py.
  [hannosch]

* Adjusted rest tests to Zope2.10 output.
  [hannosch]

* Remove BBB code for calendar_macros.
  [hannosch]

1.4.5 unreleased
----------------

* Encode values in Field.toString so we do not fall over fields with
  unicode default values that contain non-ASCII text.
  [wichert]

* Fixed possible Unicode problem in BaseObject's SearchableText. This
  closes http://dev.plone.org/archetypes/ticket/720.
  [hannosch]

1.4.3 - 2011-05-21
------------------

* Add an ObjectModifiedEvent right after `initializeArchetype`,
  since that modifies the object with default values defined in the
  schema.
  [nouri]

* Fix http://dev.plone.org/archetypes/ticket/712: Do not put security
  declarations on a ComputedAttribute, or on 'def content_type(self)'.
  [mj]

* BooleanWidget always displays 'True' and 'False'. This is very IT-centric!
  In real world people prefer 'Yes' and 'No' - or custom settings. Latter was
  fixed before, but Archetypes should have a sane default behaviour, so its
  now changed to display 'Yes' and 'No' - and is l10n aware.
  [jensens]

* BooleanWidget offers to show something different than True/ False in view
  macro using a vocabulary. Unfortunally it passed a boolean to the
  DisplayList, which raised a TypeError. Now we pass the string
  representations 'True' and 'False using 'str(key)', so one can define
  a vocabulary like [('True', 'Yes'), ('False', 'No')].
  [jensens]

* Fix http://dev.plone.org/archetypes/ticket/686: "zid.pt does not
  respect the portal wide visible_ids setting".
  [nouri]

* The last change expected portal_type global available. This is true for all
  good archetypes products ;-) but failed with CacheSetup, where editmacros
  was called w/o setting it. Archetypes now ignores this missing global and
  inititalize it to 'unknowntype'.
  [jensens]

* for better css styling hpeter added a class and a id to edit_macros form
  element, which enables per-type styling of base_edit.
  [jensens]

* Fix unicodeEncode skin method to deal with sequences; fixes SelectionWidget
  with underlying LinesField case where the current value was not reflected
  in the edit widget. Fixes issue #705.
  [mj]

* BaseContent.PUT will now also fire the object modified event.
  [nouri]

* Update the base folder types to use sane permissions for
  manage_copyObjects, manage_pasteObjects, manage_renameObject(s)
  rather than the default 'View management screens' given by
  OFS.CopySupport (the permission mapping used is from
  Plone.PloneFolder)
  [alecm]

* Backported the catalog unindexing silencer code from trunk, as in contrast
  to the former code on this branch it doesn't use any private attributes.
  [hannosch]

* Fixed translation domain of two messages in go_back.cpy. These were missing
  from the Archetypes translation files.
  [hannosch]

1.4.2-final - 2006-12-15
------------------------

* Fixed missing declaration of timestamp property in TextAreaWidget for
  append_only mode.
  It may need a better intregration of plone datetime format property.
  [encolpe]

* Fixed missing i18n statement for the text format label on visual widgets.
  This closes http://dev.plone.org/archetypes/ticket/687.
  [hannosch]

* Fixed a minor issue of FixedPointField: It now works with integer default
  value.
  [jensens]

* Add a try: finally: clause in AllowedTypesByIfaceMixin when deleting
  the typeinfo "temporarily" Fixes http://dev.plone.org/plone/ticket/5314
  [alecm]

* Fix the unique name finder during initial rename on create so that it
  checks the names validity.  Fixes http://dev.plone.org/plone/ticket/5044
  [alecm]

* Fix BaseObject.isBinary to not assume AttributeStorage.  Fixes
  http://dev.plone.org/plone/ticket/5822
  [alecm]

* Silenced more catalog unindexing log error messages by checking if
  an object exists in the catalog before uncataloging.
  [rocky]

* Fixed #5963. Now all the first headers of the page have
  "documentFirstHeading" class applied.
  http://dev.plone.org/plone/ticket/5963
  [spliter]

* Fixed #5929. UID catalog rebuild broke path convention.
  http://dev.plone.org/plone/ticket/5929.
  [hannosch]

* Made tests use layers for AT site setup.
  [stefan]

1.4.1-final - 2006-09-08
------------------------

* Fix #635.  Large files were truncated on `setFileName`.  In
  `setFilename` of FileField, we now set the `filename` attribute
  directly instead of retrieving the BaseObject, setting the
  filename and setting the object again.
  [nouri]

* Fixed log_exc function in debug.py to print the actual exception including
  the traceback.
  [hannosch]

* base_edit (anything calling processForm, actually) now fires off
  appropriate IObjectCreatedEvent and IObjectModifiedEvent zope 3 events
  [rocky]

* Made the BaseObject __bobo_traverse__ fallback on Five traversal except in
  those cases where it would return something different.  This allows views
  to override acquired attributes. (this change is not intended for Zope 2.10,
  which behaves differently)
  [alecm]

* Fixed simple xhtml non-compliance and some erroneous i18n markup.
  [hannosch]

* Make all WebDAV request types return NullResources on failure, not just PUT
  and MKCOL.  This fixes a test failure resulting from some Zope traversal
  machinery tweaks.  Thanks to sidnei for webdav guidance.
  [alecm]

* Safari uses HTTP_ACCEPT=='*/*', which meant that the image widget never
  rendered an image due to some faulty boolean logic.
  [alecm]

* Backport of fix for #585 from trunk
  [nouri]

* Add a multiple catalog aware reindexObjectSecurity to BaseObject. This
  fixes problems with security checks in catalogs when objects are changed
  through other means than normal editing (such as workflow changes).
  [wichert]

* Fix #670: addCreator function fails with AttributeError in
  ExtensibleMetadata.  This closes
  http://dev.plone.org/archetypes/ticket/670
  [nouri]

1.4.0-final - 2006-06-16
------------------------

* Undeprecated 'public', there are too many products relying on it and it's
  just a name change without any real benefit.
  [hannosch]

1.4.0-RC1 - 2006-06-02
----------------------

* Use zope.contenttype in favor of zope.app.content_types if available.
  [hannosch]

* Added a new GenericSetup profile 'sample_content' which installs all
  available sample content types. This should mainly be used as a basis for
  the test setup.
  [hannosch]

1.4.0-beta1 - 2006-05-12
------------------------

* Added support for <catalog> entries to be added to the GenericSetup
  profile description of portal types to enable registration w/ multiple
  catalogs in the archetype_tool.
  [rafrombrc]

* Fixed a problem in Field.py which could split mutibyte characters at a wrong
  position, which could cause encoding problem in mimetypes_registry.
  This closes http://dev.plone.org/plone/ticket/5214.
  [hannosch]

* Add GenericSetup support for importing/exporting the catalog map from
  ArchetypeTool
  [wichert]

* Use portal type instead of meta type for the catalog map. Add an option
  to config.py to switch back to the old behaviour.
  [wichert]

* Removed some old commented out code.
  [hannosch]

* Added a archetypes historyaware mixin, providing access to archetypes
  persistent revisions (including annotations).
  [mj]

* Moved 'index_method' computation out from Extensions/utils.py into
  Field.  Because we want SearchableText of BaseObject to use the
  'index_method' too.  This fixes
  http://dev.plone.org/archetypes/ticket/645
  [nouri]

* Avoid DeprecationWarnings for manageAddDelete methods and converted the
  logging infrastructure to use Python's logging module in favor of zLOG.
  [hannosch]

* Removed reST-test-kludge. reStructuredText of Zope < 2.8 is buggy,
  don't bother with test failures.
  [stefan]

* converted remaining interfaces and unconverted metadata due to
  issues with CMF1.5's bridges
  [whit]

* converted add following modules to zope3 interfaces w/
  backward bridges::
  interfaces/_annotations.py
  interfaces/_field.py
  interfaces/_layer.py
  interfaces/_marshall.py
  interfaces/_metadata.py
  interfaces/_referenceengine.py
  interfaces/_schema.py
  interfaces/_storage.py
  [whit]

* added makeBridgeMaker, makeZ3Bridges, and makeZ2Bridges to util to
  assist in bridging
  [whit]

* removed superfluous bridge statements from zcml

* Spring-cleaning of tests infrastructure.
  [hannosch]

1.4.0-alpha03 - 2006-03-26
--------------------------

* Fixed some bizarro bug where the __call__ method of BaseFolder (i.e.
  render the default view) was instantiating a new CMFCore PortalFolderBase
  object and returning it (unrendered even).
  [alecm]

* fixes #617: Do not catch KeyboardInterrupt.
  [jensens]

* marked PhotoField as deprecated. After work done on ATImage and
  ImageField this one isnt needed anymore in Archetypes core.
  PhotoField and its supporting classes will be removed in AT 1.5
  [jensens]

* fixed #600: Auto-generated attributes are not protected by
  permissions. Attention: Enabling protection is a minor change in
  the config.py. Some products with code doing direct attribute
  access will break. People using and relying on those products
  can disable attribute protection, but better fix those Products.
  [jensens]

* fixed #608: Protect id field by 'Copy or Move'
  [jensens]

* fixed #637: Schema.moveField( ... after ) does incorrect reordering.
  Needed fixing of a buggy doctest.
  [jensens]

* merged in code of Daniel Nouri to support multiple references
  with the same name between two objects, thsi is needed for example
  with Relations product. Thx Daniel.
  [jensens]

* removed superfluos code from ClassGen.
  [jensens]

* Removed some nonsense on PUT that would look at REQUEST._steps and
  try to catch a exception (which would never occur!). Made it use
  'PATH_INFO' instead, with a fallback to 'self.getId()' which
  should suffice (PATH_INFO is always available as long as the
  request came in through ZPublisher.Publish).
  [sidnei]

* PdataStreamIterator could potentially end up loading a persistent
  object after the ZODB connection had been closed. Made it use a
  temporary file to stream out the content so that large files don't
  end up using all the available memory.
  [sidnei]

1.4.0-alpha02 - 2006-02-23
--------------------------

* Added check for duplicate 'accessor', 'edit_accessor' and
  'mutator' method names on a schema's fields. Helps Joe Schmoe to
  get unstuck, hopefully.
  [sidnei]

* dont generate 'Schema' method any more. its now part of BaseObject.
  [jensens]

* seperated UIDCatalog from ReferenceEngine.
  [jensens]

1.4.0-alpha01 - 2006-01-26
--------------------------

* Remove BBB code for CMFBTreeFolder import location.
  [hannosch]

* Make import from ``Products.Archetypes.atapi import *`` default and deprecate
  public.
  [jensens]

* Integrated 'generator' into Archetypes.
  [jensens]

* Changed transactions use to new API and removed some Plone 2.0 backwards
  compatibility code
  [hannosch]

* Changed imports of CMFCore.CMFCorePermissions to CMFCore.permissions
  [k_vertigo, hannosch]

* DisplayLists should be a little less strict on their values. Now not only
  unicode itself but also types inherited from unicode are allowed. This is
  needed to handle zope.i18nmessageid.MessageID objects correctly.
  [hannosch]

1.3.10-final2 - 2006-09-14
--------------------------

* Check mimetype before schema update and reapply type after. This fixes
  http://dev.plone.org/archetypes/ticket/618
  [alecm]

* Fixed import of NotFound in getBestIcon.py which broke CMF1.4 compatibility.
  This closes http://dev.plone.org/archetypes/ticket/656.
  [hannosch]

1.3.9-final - 2006-05-16
------------------------

* Add a new generateNewId method to BaseObject which is used to suggest
  a new id when automatically renaming an object after creation. This makes
  it easier to used custom naming in derived types.
  [wichert]

* Fix visual widget to not lose formatting if there's only one allowed
  content type - without passing this variable along, the field will revert
  to text/plain or MIME type guessing the second time it's saved.
  [optilude]

1.3.8-final - 2006-04-30
------------------------

* Cleanup of CatalogMultiplex: removed superfluos code, added docstring
  and comments.
  [jensens]

* Moved 'index_method' computation out from Extensions/utils.py into
  Field.  Because we want SearchableText of BaseObject to use the
  'index_method' too.  This fixes
  http://dev.plone.org/archetypes/ticket/645
  [nouri]

* Removed reST-test-kludge. reStructuredText of Zope < 2.8 is buggy,
  don't bother with test failures.
  [stefan]

* Fixed WebDAV MOVE breaking references and cleaned up flagging of
  reference copying for good measure.
  Fixes http://dev.plone.org/archetypes/ticket/642
  [sidnei]

* Fixed up some templates that were abusing tabindexes to get unique ids on
  form elements. Tabindexes can no longer be used for this reliably
  since Plone 2.1.3, and repeat/var/number is cleaner anyway.
  [optilude]

* fixed http://dev.plone.org/plone/ticket/5072
  [jensens]

* fixed #637: Schema.moveField( ... after ) does incorrect reordering.
  Needed fixing of a buggy doctest.
  [jensens]

* Removed some nonsense on PUT that would look at REQUEST._steps and
  try to catch a exception (which would never occur!). Made it use
  'PATH_INFO' instead, with a fallback to 'self.getId()' which
  should suffice (PATH_INFO is always available as long as the
  request came in through ZPublisher.Publish).
  [sidnei]

* PdataStreamIterator could potentially end up loading a persistent
  object after the ZODB connection had been closed. Made it use a
  temporary file to stream out the content so that large files don't
  end up using all the available memory.
  [sidnei]

* Changed sidneis last 'fix'. Dont raise an exception. This is changed
  behaviour and I cant accept this in a bugfix release. Prints out
  a deprecation message instead now, to not break Products relying on
  the old - odd - behaviour.
  [jensens]

* Added check for duplicate 'accessor', 'edit_accessor' and
  'mutator' method names on a schema's fields. Helps Joe Schmoe to
  get unstuck, hopefully.
  [sidnei]

* Backported fix for failing Windows mime types:
  Original fix: http://dev.plone.org/archetypes/changeset/6005
  Bug details here: http://dev.plone.org/plone/ticket/5109
  [limi]

* Cleanup of CatalogMultiplex: removed superfluos code, added docstring
  and comments.
  [jensens]

* Fixed missing import of PersistentMapping.
  Closes http://dev.plone.org/plone/ticket/5182
  [hannosch]

* Usability fix for file widget ( widgets/file.pt ) so that the
  radiobuttons with 'Keep existing file' and similar are no longer shown
  if there is no file uploaded.

* fixed bug in getBestIcon.py, use NotFound class but not 'NotFound'
  string in exception.
  [panjunyong]

* fixed bug in AllowedTypesByIface, prevented to copy, paste, rename
  objects using the mixin.
  [jensens]

* fixed problems introduced by last 'fix' of IdWidget zid.pt: Member
  and widget settings was ignored :-(
  [jensens]

1.3.7-final - 2006-01-16
------------------------

* fixed problems with IDWidget ignore_visible_ids in some setups.
  [sidnei, rafrombrc]

1.3.6-final - 2006-01-07
------------------------

* enable IDWidget to ignore global visible_ids setting and enable ids by
  adding a property ignore_visible_ids=False (default). If it is True
  the id (short name) is shown and the global or by-member setting is
  ignored. This is useful for types where control over the id is needed.
  [jensens]

* 'Renderer' is used to set locals to context of rendered widgets. added
  prefix support for fieldnames in widgets to enable archetypes for multi-
  object edit forms.
  [jensens]

* debug.ClassLog -> generateFrames calls pythons 'inspect' function. This
  breaks on at least one OS-X Tiger system with an IndexError (normal setup).
  Now IndexError is catched and ignored.
  [jensens]

* cleanup of install_indexes magic to add index and metadata-columns to
  a catalog. also added an alternative method than 'schema()' to use, for
  example if a CatalogTool itself is archetypes based. The alternative i
  method is 'zcschema' and does not conflict with Archetypes schema
  attribute.
  [jensens]

* Moved the byline to the header to be consistent with Plone 2.1.
  [limi]

1.3.6-RC1 - 2005-12-29
----------------------

* Make rename-after-creation resolve duplicates by appending -n, where n is
  a number, to the id when an existing object exists in the parent folder.
  This closes http://dev.plone.org/plone/ticket/4510.

* Return the new PdataStreamIterator when a Pdata-like chain is
  found (we always assume this if the marshaller didn't return a
  string). This way it works better with ExternalEditor.
  [dreamcatcher]

* PrimaryFieldMarshaller was overriding already computed 'length'
  with len(data). Yuck.
  [dreamcatcher]

* Fixed http://dev.plone.org/plone/ticket/4768 - wrong status message.
  [hannosch]

* Fixed typo in BaseBTreeFolder.__init__. Thanks jenner.
  [stefan]

* Fixed http://plone.org/collector/4840. Resync some texts with Plone.
  [hannosch]

* Fixed http://plone.org/collector/4981. BaseObject.__bobo_traverse__ now
  also handles HEAD requests.
  [stefan]

* Made basically compatible with Zope 2.9 by using a wrapper around the
  transaction module.
  [hannosch]

* Lower the bar for making folderish content implement WebDAV/FTP
  'PUT' and 'GET' by adding a new flag ``__dav_marshall__``  that
  just needs to be flipped to 'True' for folderish content.
  [dreamcatcher]

* Finally changing the last toPortalTime call to toLocalizedTime
  [hannosch]

* Permission for setting creation date and modification date: Portal
  Manager should it be allowed to set it manually!
  [yenzenz]

1.3.5-final - 2005-10-11
------------------------

* Fixed http://members.plone.org/collector/4709 __bobo_traverse__ calls
  will not be passing a RESPONSE argument.
  [alecm]

* Fixed filename detection for temporary files on Windows.
  [dreamcatcher]

* Fixed [ 1289596 ]. Field.ImageField.tag did not escape alt and title
  attributes.
  [elro] [stefan]

* Repaired ClassGen as to not stomp over declarePublic and
  declarePrivate security declarations. Patch by Jens Vagelpohl.
  [dreamcatcher]

* Fixed some places where a session was being created nedlessly. Now
  sessions will only be created when they are really used. I hope
  this is the last occurrence.
  [dreamcatcher]

* Fixed at_post_create_script hook to only be called once (was previously
  called after every edit) and added an at_post_edit_script hook to be
  called on every subsequent edit (but not the first create/edit).
  [elro]

1.3.4-final - 2005-08-30
------------------------

* added tests if the test engine i working fine, this shows the effect
  of http://plone.org/collector/4487 verbose.
  [yenzenz]

* applied patch to BaseObject.unmarkCreationFlag() with unwanted
  acquisition of at_post_create_script. thx Aparajita Fishman
  [yenzenz]

* enabled renaming of fields while copy them. it eases field recycling.
  [yenzenz]

* fixed [ 1265581 ] Deleting a file withn optional FileField/FielWidget
  breaks
  [yenzenz]

* Fixed a number of issues related to the oversimplicity of
  CatalogMultiplex.manage_after*.  Workflow state was not being reset on
  object copy, which is a minor security issue.  Discussions were not being
  removed from the catalog when the parent was deleted.  Copied discussions
  were not being added to the catalog.  The owner local role was not being
  set on copy.  CMFUid objects were not being removed on copy (critical for
  CMFEditions).  CatalogMultiplex now delegates manage_after* methods to
  CMFCatalogAware (except manage_afterClone which it overrides to do a full
  reindex before delegating).  Removed calls in BaseFolder to
  PortalFolder manage_after*, as those are just inherited directly from
  CMFCatalogAware whose methods are now used in CatalogMultiplex.
  [alecm]

* Fixed an issue where copying a BaseBTreeFolder resulted in references on
  subobjects of that folder being duplicated due to bad inheritance of
  _getCopy.
  [alecm]

* download of files from FileField: filenames where cutted at
  first space character in filename. report, fix/patch by
  LaurenceRowe, thx!
  [yenzenz]

1.3.4-rc3 - 2005-08-07
----------------------

* import of CMFBTreeFolder changed with CMF 1.5.3, kept it backward
  compatible. thx to TresEquis.
  [yenzenz]

* FileField: On download provide a filename. Patch form Tim Hicks
  applied. Needs optional UI to change filename, atm it uses the
  name of the uploaded file. thx tim2p.
  [yenzenz]

* theres no application/octet.  http://www.iana.org/assignments/
  thanks to lalo for this pick.
  [yenzenz]

1.3.4-rc2 - 2005-08-01
----------------------

* Skip image scales with a size of (0,0)
  [tiran]

* Fixed handling of boolean usage in allowDiscussion for the CMF 1.5
  DiscussionTool.
  [alecm]

* Fixed two Marshaller bugs. PrimaryFieldMarshaller wasn't using the mutator
  for a field and RFC822 marshaller was trying to add field, image and
  object fields to the header. Fields of these types contain binary data
  or instances of OFS.Image.Image and can't be marshalled as header.
  [tiran]

* Fixed [ 1209047 ] edit method broken on BaseBTreeFolder. Also added some
  im_func fu to BaseBTreeFolder.
  [tiran]

* Fixed [ 1236601 ] bug in method getAvailableSizes()
  [tiran]

* Fixed critical bug in RFC822 Marshaller w/ CMF 1.5 The
  CMFDefault.utils.parseHeadersBody function capitalizes the header names
  and breaks demarshalling. Marshall contains a light weight
  reimplementation.
  [tiran]

* Added ftests for id autogeneration.
  [alecm]

1.3.4-rc1 - 2005-07-17
----------------------

* Fixed http-etag test. It now 1) refreshs etag on reindexObject and 2) also
  must update etag on metadata modification (like Title).
  [yenzenz]

* Fixed bug when get full BaseUnit object from FileField
  [panjunyong]

* Fixed file edit widget to disable upload by default when javascript enabled
  [panjunyong]

* Fixed at_download to return values from field.download
  [panjunyong]

* Tiny change to image.pt widget template to render a link directly
  to the image object
  [rafrombrc]

* Added Five/Zope3 interface bridges
  [tiran]

* Fix http://plone.org/collector/4268 Type descriptions were not
  translated and fixed the usage of archetype_name in templates.
  [hannosch]

* Prefer isIDAutogenerated from plone_tool over the script if available.
  [alecm]

* some minor i18n tweaks
  [hannosch]

* Added options for PIL quality and resize algo to ImageField.
  [tiran]

* Fixed #1212048: ReferenceField "set" broken for
  BaseBTreeFolder-based objs.
  [dpunktnpunkt]

* Fixed #1230645: unnecessary call to str() method in SQLMethod.
  [dpunktnpunkt]

1.3.4-beta2 - 2005-07-06
------------------------

* Fixed outstanding errors with ImageField. ImageField is now using
  the same api and processing methods as FileField. Empty images are
  neither created nor returned by the accessor/mutator.
  [tiran]

* Added a wrapper for indexing object in the uid catalog to fix unicode
  issues.
  [tiran]

* Added AllowedTypesByIface, a mix-in that allows you to restrict
  allowed_content_types by interface.  We want a better way to do
  this for 1.4.  ArchGenXML support is under way.
  [dpunktnpunkt]

* Reworked ArchetypeTool.listPortalTypesWithInterfaces.  Note that
  the former version only returned AT types as well.
  [dpunktnpunkt]

* Moved mark creation flag code from ATContentTypes 1.0 to AT. This is the
  right place for the code. It requires Plone 2.1 but doesn't barf if no or
  and older version is installed.
  [tiran, alecm]

* As a part of the mark creation flag code the _renameAfterCreation()
  method is added. It can be turned on by setting _at_rename_after_creation
  to True. Thx to Alec Mitchell for his code!
  [tiran, alecm]

* Fixed issue with ImageField where an empty string was passed down to
  PIL resulting in an exception.
  [tiran]

* Updated the type registration code to be compatible with CMF 1.5 and to
  support method aliases and CMFDynamicViewFTI.
  [tiran]

* Made utils.filterTypes compatible with CMF 1.5
  [tiran]

* generalised the interface detetection for types and listings of it
  in archetypes_tool and adapted TemplateMixin lists and detection to
  use this code.
  [yenzenz]

* calendar_slot has been renamed to calendar_macros in Plone
  [hannosch]

* Fixed failed test in ISchema: removed 'self' in interface method.
  [yenzenz]

* Expose field creators of ExtensibleMetadata.
  [yenzenz, optilude, alecm]

* Make it easy to rename fields and keep its content. Introduced a property
  old_field_name. Patch from Kai Hoppert. Thx!
  [yenzenz]

* Merged madduck-refactor-content-edit-1_3 branch r4283:4363 into
  release-1_3-branch:
  content_edit.cpy cannot be called directly by other .cpy scripts,
  because FormController seems to bestow control upon content_edit.cpy on
  invocation. This patch moves the code (unchaned) to content_edit_impl.py
  and replaces content_edit.cpy with a simple call to this .py. As
  a result, SQLWindowStorage can use AT's content_edit and needs no code
  duplication, and AT continues to work as before.
  For reference, please see:
  http://thread.gmane.org/gmane.comp.web.zope.plone.archetypes.devel/4959
  http://thread.gmane.org/gmane.comp.web.zope.plone.user/35620
  [madduck]

* Merged madduck-renderingfixes-1_3 branch r3956:4361 into
  release-1_3-branch:
  Reworked base_{view,edit} wrt CSS and Javascript. previously, CSS and
  Javascript were both rendered into the javascript_head_slot and there
  was no way to influence it really, other than on a per-field basis with
  helper_css and helper_js. No way to do it per-type though. My patch
  splits CSS into the css_slot and makes both templates look in the user
  templates for optional CSS/Javascript macros ('css' and 'javascript')
  much in the same way that the header/typedescription/body/footer parts
  are acquired. For base_edit, this is trivial since edit_macros is
  defined inside the css and javascript macros provided by the user (they
  are evaluated in the context of base_edit itself, which defines
  edit_macros). For base_view, this is not possible. Thus there is code
  duplication, which I documented in the form of comments in the
  templates.
  Added a condition to the errors span for each field in widgets/field.pt
  such that in the absence of an error, no HTML is generated. This avoids
  some rendering problems when multiple widgets are to be rendered on the
  same HTML line.
  [madduck]

* Introduced manage_afterPUT and manage_afterMKCOL hooks that are called
  after a webdav or ftp PUT/MKCOL operation.
  [tiran]

* Fixed MKCOL of BaseBTreeFolder to call the right MKCOL method from
  BaseFolder resp. SkinnedFolder.
  [tiran]

* Moved document_actions above title on base.pt.
  [deo]

1.3.4-beta1 - 2005-05-20
------------------------

* Fixed [ 1192453 ] Typo in Extensions/utils.py on line 117. Thanks
  to salmacis.
  [yenzenz]

* Solved unicode encoding problem on set of textfield.
  [yenzenz]

* Unquoted filename when uploaded from ftp/webdav.
  [panjunyong]

* Fixed [ 1184475 ] Template Mixin UI still borked.
  Attention: All types are bound to portal_type know. If you're using
  a type where meta_type!=portal_type you have to rebind your templates
  to the type! This should affect not too many people.
  [yenzenz]

* Fix issue [ 1174598 ] default action title overrides custom title if
  set using 'name' instead of 'title'.
  [alecm]

* Made the show_hm flag for CalendarWidget work.
  [alecm]

* Added hidden macro to boolean widget fixes issue [ 1144139 ].
  [alecm]

1.3.3-final - 2005-04-22
------------------------

* Changed default for Language metadata field to empty string (''). Also
  removed the undesired fallback magic.
  [stefan]

* Fixed [ 1187630 ] AT rebuilds reference catalog by default on product
  install.
  [yenzenz]

1.3.3-rc3 - 2005-04-21
----------------------

* Added optional 'visible_only' argument to Schemata.editableFields();
  modified base_edit to use 'visible_only=True' so the edit form will
  not display schemata that contain no visibly editable fields.  Default
  behaviour for editableFields should remain the same.
  [rafrombrc]

* Applied two performance optimizations:
  BaseObject.getCharset() no longer calls the PythonScript of same name.
  This method is called bazillions of times and using a script here is
  enormously wasteful. The script has been kept as fallback.
  ExtensibleMetadata.listCreators() now calls getOwnerTuple() instead
  of getOwner() to avoid lookup of user folder and user.
  [stefan]

1.3.3-rc2 - 2005-04-01
----------------------

* Fixed plone bug #3959 (http://plone.org/collector/3959), made
  OrderedContainer.moveObjectsByDelta not throw an error when passed the id
  of a non-contentish object.
  [alecm]

* Fixed [ 1061971 ] maintain order in InAndOut and PickLists across edits.
  [alecm]

* Fixed hidden variant of MultiSelectionWidget.
  [tiran]

* Changed warnings.warn(...) to deprecated(..) from Archetypes.debug.
  [yenzenz]

* Fixed [ 1171059 ] Archetypes should not set language explicitly on content.
  Default is set to None by default. For backward compatibility reasons, I
  added a switch in config to enable old behaviour.
  [yenzenz]

* Added subject to SearchableText.
  [tiran]

* Added ComputedAttributes for effective_date and expiration_date.
  [tiran]

1.3.3-rc1 - 2005-03-25
----------------------

* Fixed [ 1163878 ] Field.toString() always return the same thing. Thanks
  to flacoste for the patch.
  [yenzenz]

* Fixed [ 1153525 ] zid.pt hidden mode hardcode field name. Thanks to
  flacoste for the patch.
  [yenzenz]

* Fixed Referencefield making it possible to completely avoid ugly paths in
  the selectionlist (set vocabulary_display_path_bound=-1 to never get the
  paths).
  [elvix]

* Fixed problem with encoding enforcement on TextField. Now has same behavior
  as StringField, but is neutral to old behaviour. If you call 'get' on a
  TextField and give a kwarg 'encoding' it has been ignored, now its used.
  It returns the encoding requested.
  [yenzenz]

* Fixed [ 1160362 ] AT 1.3.2-final bug on PrimaryFieldMarshaller by adding the
  missing import of shasattr in Marshall.
  [tiran]

* textarea.pt and image.pt were broken under 2.7.2 (newline in python
  expression).
  [gotcha]

* Correct getMsgId on DisplayList (when using int keys) and IntDisplayList
  Fixes [ 1159248 ] IntDisplayList.getValue triggers DeprecationWarning.
  [gotcha]

* Made ComputedFiled inherits from Field instead of ObjectField (which
  should only be used with fields that handle storages).
  [deo]

1.3.2-final - 2005-03-05
------------------------

* Made deprecation warnings less verbose. If someone wants them, switch
  DEBUG in config.py to True.
  [yenzenz]

* Added IntDisplayList to the public module.
  [tiran]

* Added Sidney's AttributeValidator to BaseObject. It's disabled for now
  because it might break third party software which relies on a broken
  behavior. You can enable it by setting ATTRIBUTE_SECURITY to True.
  [tiran]

1.3.2-rc1 - 2005-02-26
----------------------

* Using registerType without a package name is deprecated. Explict is better
  than implicit!
  [tiran]

* Fixed DisplayList for int keys. The warning module was missing *blush*
  [tiran]

* Added IntDisplayList to utils.py. Also I've coded some nice doc tests for
  DisplayList and IntDisplayList.
  [tiran]

* Fixed[ 1118780 ] Bad validation for required IntegerFields with value zero
  Also the default values for IntegerField and FloatField are None instead of
  0.
  [tiran]

* Applied patch from [ 1076738 ] PrimaryFieldMarshaller: wrong length.
  [dmaurer]

* Changed the reference tab permission to modify or review according to
  [ 1087990 ] 'References' action visible for everyone.
  [tiran]

* Fixed customizationpolicy.py not to break if CMFPlone isn't available.
  [tiran]

* Updated the requirements to Zope 2.7.4+. It may work with older versions of
  Zope 2.7.4 but due some serious memory leaks and some important bug fixes
  you should really use Zope 2.7.4!
  [tiran]

* Backported CMFTestCase/PloneTestCase based test suite from AT 1.4 branch to
  AT 1.3. The unit test suite of AT 1.3 was horrible. Yeah you are allowed to
  beat me up but in excuse I must say it was first try in using ZopeTestCase.
  I've learned my lessons. In order to run the unit tests you have to install
  either CMF 1.4.7 + CMFTestCase + ZopeTestCase or Plone 2.0.5 + PloneTestCase
  + ZopeTestCase. For now only the CVS versions from sf.net collective are
  working properly.
  To run the unit tests go into the root of your testing instance and run:
  ZOPE_HOME/bin/test.py -v -C etc/zope.conf --libdir Products/Archetypes/
  [tiran]

* Fixed [ 1103955 ] ObjectManager raises (usually) AttributeError.
  [dmaurer]

* Fixed [ 1074236 ] DDocument and Fact are broken in 1.3.1 final.
  [tiran]

* Fixed [ 1093042 ] log warning for int keys in DisplayList.
  [tiran]

* Fixed [ 1067212 ] missing security declaration for
  BaseFolder.manage_addFolder.
  [biza]

* Fixed [ 1114892 ] should set to field, not fieldname in
  ObjectField.getRaw().
  [madduck]

* More OrderedDict fixes... wasn't overriding 'pop' method from base class,
  causing keys list and data to get out of sync if it were ever called.
  [rafrombrc]

* Fixed broken implementation of moveObjectsByDelta in ordered base folder
  by copying my code from CMFPlone. I've fixed it in Plone over an year ago
  but I forgot to fix it in AT.
  [tiran]

* Fixed [ 1114362 ] use format name instaed that mime type inside RichWidget.
  [dan_t]

* Filtering schemata from showing up on base_edit unless user actually
  has edit privs to some of the fields.
  [rafrombrc]

* Fixed utils.OrderedDict problems:
  - constructor was failing w/ non-empty argument
  - infinite loop when copy() was called
  [rafrombrc]

* Changed UI for Image/File widgets. Should be a lot better now.
  [_ender_]

* BaseUnit backward compability on very old bad migrated Archetypes 1.0
  sites. Thanks to Brent M Hendricks <brentmh@rice.edu>.
  [yenzenz]

* Commented out the View/Edit links for ordinary display - feel free to
  enable these in your site, but they should definitely not be there by
  default.
  [limi]

* Added the last (and only) info that isn't being handled by AT for FTI:
  allow_discussion. Now you can define it at class level, as any other
  FTI property. The module level modify_fti method still exists for any
  advanced configuration.
  [deo]

* Improved test for [ 1003868 ] to demonstrate the real problem:
  default_charset isn't respected. Now when db_encoding isn't defined,
  we give precedence to site_encoding and then fallback to utf-8.
  Bonus: there's no more need to mess with 'sys.getdefaultencoding()'
  to make tests run... ;-)
  [deo]

* The subobject Wrapper class is now based on Acquisition.Explicit. And
  BaseObject's subobject works now.
  [panjunyong]

* Applied ApeSupport changes needed for APE 1.0. Thanks to Roch?ompaan.
  Changed comment to doc-string.
  [yenzenz, zwork]

* Added Italian translation. Thanks to Mirto Silvio Busico.
  [deo]

* Change permission of OrderedBaseFolder's manage_renameObject to make
  FTP works.
  [panjunyong]

* Fixedi [ 1053960 ] Cancel goes back to previous schemata page, thanks
  to Alec Mitchell.
  [yenzenz]

* Fix redirect of ZMI constructor, fix ZMI base_add and base_edit.
  [__gotcha]

* Fixed [ 1058669 ] Wrong i18n:translate in widgets/field.pt.
  [yenzenz]

* Use method getFilename in at_download.pt instead of direct attribute access,
  which ignores BaseUnit.
  [yenzenz]

* Fixed [ 1084278 ] In www/generateDebug.zpt error in *
  getTypeInfo(type['name']).
  [yenzenz]

* Applied patch in [ 1076864 ] schemata links need css declaration, thanks to
  David Convent.
  [yenzenz]

* Fixed [ 1067923 ] Field.py: ImageField.get_size does not work properly.
  [yenzenz]

* Fixed bugs in the reference graph feature that was broken for me.
  [yenzenz]

* Fixed [ 1066884 ] Field.py: getAvailableSizes 1.3.1-rc4. Thanks to Steve
  McMahon.
  [yenzenz]

* Fixed path to kernel uuid pseudo file.
  [tiran]

* Don't use the format selector from wysiwyg.
  [tiran]

* Fixed __pkginfo__.py: use version.txt instead of coping a string to
  several places; changed license to the current license "BSD-like".
  [yenzenz]

* Fixed reference cataloging when dealing with BTree folders.
  [brcwhit]

* Fixed [ 948385 ] Allow wysiwyg editors to override RichWidget format
  pulldown.
  [duncanb, ender]

* Fixed traversal/WebDAV for the nth time, now with tests.
  [dreamcatcher]

* Fixed a possible problem when installing uid_catalog.
  [zopezen]

* Added multi-field support to getFilename/setFilename and also
  getContentType/setContentType. Bonus: reformated ChangeLog... ;-)
  [deo]

* Updated Catalan translation. Thanks to Albert Lombarte.
  [deo]

1.3.1-final - 2004-11-15
------------------------

* Some visual fixes to RichWidget and Field code + removed stray comments.
  [limi]

* Fixed field tests.
  [yenzenz]

1.3.1-rc4 - 2004-11-06
----------------------

* reverted the patch from duncan because of too many bugs :(
  final decicion for 1.3.x: we keep the 1.3.0-final reference copy
  behaviour.
  [hazmat, geoffd, yenzenz]

* fixed reference_slot, wasnt adapted to the new style reference engine.
  [yenzenz]

1.3.1-rc3 - 2004-11-05
----------------------

* There where lots of discussions about the behaviour of references while
  copying. it ends up in 1.3.0-final with the default behaviour to do not
  copy references if a object is copied. now this is for several use-cases
  a great problem, and it's also difficult to copy them afterwards.
  finally we decided to make it configureable per reference in 1.4.x. A
  solution for 1.3 is provided by the patch from duncan booth we applied
  here. its transparent to the 1.3.0-final behaviour. you now can set
  in archetypes tool the copying behaviour. it defaults to not copy
  references.
  [duncanb, yenzenz]

* Changed boolean widget so that the checkbox is displayed before
  the label and not below the help text. Makes more sense UI wise.
  [_ender_]

* Fix manage_delObjects of BaseFolderMixin that did not return anything.
  [__gotcha]

* Allow comma as dezimal delimiter in FixedPointField and convert it
  immediatly to a point-delimited-value. The whole process needs a rewrite
  in 1.4, this here is only a quick non-immersive usability enhancement.
  [yenzenz]

1.3.1-rc1 - 2004-10-17
----------------------

* Fixed [ 1037265 ] Bug in ArchetypeTool:getWidgets(). Thanks to Tommy from
  IBAS for the catch.
  [deo]

* Fixed a bug with TemplateMixin on folderish types: in navtree and on view
  tab the choosen template has been ignored, cause it felt back to an action
  folderlisting, which now is set to view instead.
  [yenzenz]

* Applied patch contributed in [ 1038107 ] Problems with addable_types
  handling in ReferenceWidget. Thanks to Alec Mitchell for the patch.
  [yenzenz]

* Added Archetypes Site customization policy.
  [tiran]

* Changed it so that Title is not shown twice in view mode (once in the headline
  is fine, thank you ;)
  [limi]

* Fixed [ 1042076 ] missing import in SQLMethod.py: atoi and time were missing.
  [tiran]

* Fixed [ 1043114 ] WEBDAV folder creation broken.
  [tiran]

* Updated quickref. Thanks to Jean Jordaan for his great work!
  [neaj, tiran]

* Fixed [ 1037803 ] "AT Document Details" should be "Document Details" in edit
  Now Archetypes is using the portal type name by default instead of the
  archetype_name. You can change the new behavior by using a different
  type_name var in the templates.
  [tiran]

* Added some ugly hacks to ship around [ 1040623 ] FTP upload broken. You may
  say it's fixed for AT 1.3 but for AT 1.4 we will have a much better
  implementation.
  [tiran]

* Fixed [ 1038404 ] BaseFolder.mange_delObjects proteced by wrong permission.
  Now the method is protected by CMFCorePermissions.DeleteObjects instead of
  CMFCorePermissions.ModifyPortalContent which is exactly like Plone 2.x.
  [tiran]

* Fixed [ 1038428 ] Unicode string in Subjects break base_metadata page.
  [tiran]

* Partly fixed [ 1038450 ] Unauthorized due to BaseObject.__bobo_traverse__.
  Now __bobo_traverse__ is raising an AttributeError instead of returning None
  when the object can't be traversed.
  [dmauerer, tiran]

* Added workaround for [ 1040514 ] AttributeError on some types after migration
  1.2.4rc5->1.3.0 to BaseUnit. Somehow and sometimes the binary attribute gets
  lost magically.
  [tiran]

* Extensions/utils.py (install_additional_templates): Added a method to
  automagically register classes that inherit from TemplateMixin.
  [deo]

* Added Catalan translation file. Thanks to Albert Lombarte.
  [deo]

* Added viewableFields() and editableFields() to Schema. The methods are
  returning only those fields that the current user is allowed to see/edit in
  the current context.
  [tiran]

* Archetypes edit form is raising unauthorized if no editable fields are
  available.
  [tiran]

* BaseContent.PUT and BaseUnit.PUT is also trying to get the uploaded data from
  BODY if BODYFILE is empty.
  [tiran]

1.3.0 - 2004-09-30
------------------

* Fixed [ 1034649 ] Typo breaks catalog index creation: index_acessor ->
  index_accessori.
  [ronnix]

1.3.0-rc4 - 2004-09-25
----------------------

* Fixed [ 1032587 ] Error in field.Vocabulary. Thanks to Danny Bloemendaal
  for the catch.
  [deo]

* Disabled two unit tests in test_marshaller because they were causing a memory
  fault in glibc. It's probably the cause of either wvWare or the test doc
  file.
  [tiran]

* Added transaction_note to PloneCompat and use it instead of the one from
  Plone to keep backward comp. with CMF as requested on the mailing list.
  [tiran]

1.3.0-rc3 - 2004-09-18
----------------------

* Fixed misc unit tests that where broken or relied on a broken behavior.
  [dreamcatcher]

* Merged patch from [ 1026732 ] base_metadata can not use 'add $type' reference
  button.
  [tiran]

* Fixed [ 1029648 ] getBestIcon needs to be better.
  [tiran]

* Partly fixed [ 1024966 ] Reference migration problem: 1.3a2 --> 1.3rc2.
  References without a relationship name will get the relationship name
  EMPTY_RELATIONSHIP which is 'related' by default. That should be fine for all
  people.
  [tiran]

* Added 'swallowResizeExceptions' attribute to ImageField. When the property is
  set to True all exceptions raised by PIL are captured and the specified scale
  isn't created.
  Note: Some scales might be created when PIL fails only for some sizes.
  [tiran]

* Field.ReferenceField: Simplify code a bit. Fix a typo on exception name.
  [dreamcatcher]

* Fixed [ 1023153 ] isEmpty validator must return empty string by using the new
  isEmptyNoError validator.
  [tiran]

* Fixed [ 1029231 ] base_metadata doesn't use JS scripts properly, also cleaned
  up the base_metadata and added support for helper CSS.
  [tiran, kai]

* Fixed [ 1025842 ] Missing i18n:translate in widgets/field.pt <label>
  [tiran]

* Cleaned up and fixed ExtensibleMetadata class:
  no more direct attribute access or attribute storage, rearranged some lines,
  use 'date is None and fallback or date' because testing for is None is,
  much faster than testing a DateTime instance for not None.
  [tiran]

* Added SQL* and VariableSchemaSupport to public.py. Please import only from
  public!
  [tiran]

* Added class and id attributes to fields rendered in view-mode (field.pt).
  These had been accidentally left out.
  [elvix]

* Fixed problem with BaseBTreeFolder losing references. It was calling
  CMFBTreeFolder manage_* methods which would end calling
  PortalFolder.manage_* methods (as they are not overriden in the class
  hierarchy) twice. The second type it would remove the references as
  there's a monkeypatch on Archetypes/patches.py which sets _v_cp_refs to
  None when calling CMFCatalogAware.manage_beforeDelete.
  [dreamcatcher]

* Fixed copy problem with AggregatedStorage by added __getstate__ and
  __setstate__ methods. Before the chances copy.deepcopy was trying
  to copy a thread lock.
  [tiran]

* Finally removed markCreationFlag which was a bad hack to achieve the same
  effect as portal_factory but w/o using portal_factory. I had a problem with
  it again and I don't want to have more headache!
  [tiran]

* Changed BaseObject.initializeArchetype() to call edit() instead of update().
  edit() is an alias for update and it's also the standard method to edit a
  type in CMF. It makes customization like in ATContentTypes much easier.
  [tiran]

1.3.0-rc2 - 2004-09-04
----------------------

* Removed class="error" from field.pt error message. It caused some ui
  glitches.
  [tiran]

* Fixed [ 1011658 ] portal_skins/archetypes folder disappeared after AT
  reinstall. Under some circumstances the skins aren't properly registered.
  [tiran]

* Fixed [ 1011533 ] AT CEILING date for expires will break DateIndex. Changed
  CEILING_DATE from year 9999 to year 2500.
  [tiran]

* Fixed [ 1012238 ] Cannot set field using boolean widget under IE.
  [duncanb]

* Changed TemplateMixin.getDefaultLayout(): It first checks for an attribute
  'default_view' then for 'immediate_view' from the FTI and at last it's using
  'base_view' as fallback.
  [runyan, tiran]

* Removed warning when trying to apply an index on a reference field from
  install_indexes. Indexes on reference fields are fully supported again.
  [tiran]

* Changed permission of BaseObject.getField() and getWrappedField() from
  ModifyPortalContent to View. All mutators on fields are secured and it won't
  make any harm to get a field. Besides it is currently possible getting a
  field over archetype_tool.
  [tiran]

* Fixed [ 1012344 ] 'NoneType' not callable error on CMFMember prefs page. Also
  cleaned up the way how the value is calculated inside field.pt. Depending
  on widget.populate it's either assigning edit_accessor or accessor to a var
  and THEN it's calling the var (which is a method) when it's not None.
  Sounds complex? Well the former version was much complexer.
  [tiran]

* Subclasses TemplateMixin from ExtensionClass.Base, set default_view to None
  in order to enable the immediate_view magic and made the getDefaultView()
  method a little bit more efficient.
  [tiran]

* Added a test for unqualified references to Schema to prevent user errors. A
  relationship must be a non empty string. Also moved all field tests in Schema
  to a new method _validateOnAdd().
  [tiran]

* Added Danish translation. Thanks to stonor!
  [tiran]

* Added 'de-de' as fallback to the German translation.
  [tiran]

* Applied fix from [ 924832 ] Widget:isVisible always returns 'visible' for not
  DictType which is fixing a broken behavior for Widget.isVisible().
  [tiran]

* Fixed [ 1012570 ] Widget.py ReferenceField is horribly inefficient.
  [runyan]

* Temporary fix for [ 1012408 ] __getitem__ doesn't play nice which is backward
  compatible except of three broken behaviors:
  BaseObject.__getitem__ now throws an Unauthorized exception when trying to
  get an item starting with _ and it throws a KeyError when trying to access
  a nonexisting object. Also it's using explicit acquisition.
  [tiran]

* Fixed unicodeTestIn.py: return False immediately when the list is None or empty.
  [tiran]

* Widget.py: Changed some field.get(instance) calls to
  field.getEditAccessor(instance)() to get rid of some sort of infinite loop
  (in append_only code forTextAreaWidget).
  [rafrombrc]

* Readded Extensions/utils.py:install_tools for backward compat.
  [dreamcatcher]

* fixed edit view rendering of append_only textarea history in
  widgets/textarea.pt data so whitespace is correct.
  [rafrombrc]

* Fix a misbehavior on __bobo_traverse__ now that Tiran changed the __getitem__
  behavior. Before that, __getitem__ was taking precedence and acquiring the
  object itself, so never getting this far:
  Nothing has been found. Though it's not written anywere, from deep ZPublisher
  inspection it seems like we *SHOULD NOT* raise a notFoundError, but instead,
  return None and leave acquisition do it's job.
  [dreamcatcher]

* Fixed [ 1011111 ] mishandling of UID W.R.T layers.
  The reference engine is now using _getCopy() mark the copy of an object with
  a marker _v_is_cp so manage_afterAdd() can detect copies in order to reassign
  a new UUID and remove the reference annotations.
  [bcsaller, rochael]

* Fixed Alan's fix for [ 1012570 ] brains has no relative_url.
  (note to myself: addable option on ReferenceField still needs lots of tests)
  [deo]

* Fixed [ 1013265 ] last changes to Widget.py is highly inefficient.
  [deo]

* Fixed LinesWidget according to [ 1013379 ] LinesField/widget broken.
  [tiran]

* Fixed bug in VariableSchemaSupport.VarClassGen mentioned in the thread on the
  AT devel mailing list. See "Warning: avoid changing your AT class' meta_type
  when you have existing instances".
  [mitchel, dreamcatcher, tiran]

* Corrected icon in ZMI; Added some utils for ZMI setup.
  [__gotcha]

* Changed unit test to work with an unpatched version of getToolByName to get
  mimetyptes_registry and portal_transform.
  [tiran]

* Fixed [ 1015956 ] getBestIcon can fail.
  [ctheuni]

* Fixed [ 1015292 ] boolean widget error, [ 1015394 ] 1.3 branch field.pt sets
  value = None inappropriately and another problem with field.pt value.
  [tiran, alecacct]

* Fixed [ 1018821 ] _processInput in Field.py should rewind.
  [batlogg]

* Part fix [ 1013363 ] (renaming of folders nukes all references to AT
  objects inside them):
  It works now for AT folders, but renaming of non-AT folders stil breaks refs
  to their contained items so ATContentTypes based portals should be fine now
  (except you rename the portal itself).
  [zworkb]

* Added monkey patch for CMFCatalogAware, PortalContent and PortalFolder to
  fix the second part of [ 1013363 ].
  [tiran]

* Fixed [ 1019803 ] Bug in ArchetypeTool.py: getWidgets(), also renamed
  _is_fake_instance to _at_is_fake_instance.
  [johtha, tiran]

* Fixed [ 1018300 ] schema defined indexes are not set anymore.
  [deo]

* Added targetId index to reference_catalog. It was removed earlier to make
  the ref catalog more lightweight. However, it broke
  ReferenceCatalog._queryFor.
  [dpunktnpunkt]

* Explictly reinstall MimetypesRegistry, PortalTransforms and Archetypes when
  running the migration. Before MTR and PT weren't reinstalled ever and AT
  under some circumstances which were leading to annoying bug reports.
  [tiran]

* Added StdoutStringIO to migration.py which is printing the input to stdout,
  too. Also added some gimmicks to the migration: After 10 items a '.' is
  printed to stdout and after 250 items a '*' is printed to stdout so you can
  see how the migration is coming along.
  [tiran]

1.3.0-rc1 - 2004-08-16
----------------------

* Try to use BaseUnit for schema migration to keep the mimetype and the
  filename of a BaseUnit based field. Without the changes the mimetype of
  TextField got lost.
  This should fix [ 1001446 ] Content type lost in migration from pre 1.3b4 to
  1.3b4
  [tiran]

* Changed portal type of ComplexType to keep it compatible with AT 1.2
  [tiran]

* Fixed typo in Field.Field.getContentType
  [tiran]

* Fixed Field.ImageField.rescaleOriginal to always return a binary string. This
  fixes the problem with original_size: [ 1004323 ] "IOError: cannot identify
  image file" when uploading image
  [tiran]

* Fixed [ 1004510 ] folderlisting or plone_utils.browserDefault by adding an action
  'folderlisting' to folderish content types.
  [tiran]

* Use True and False in favor to 1 and 0 to make the code more readable.
  [tiran]

* Raise an error when trying to use an index on a reference field unless we
  have a good solution to avoid catalog corruption.
  [tiran]

* Use edit accessor instead of the accessor in Schema.BasicSchema.validate().
  [alecacct]

* Added a index_method property to Field.Field which may be either _at_accessor,
  _at_edit_accessor or the name of a method which is used as accessor for the
  index.
  [alecacct]

* Starting from NOW all attributes starting with '_at_' are reserved for
  internal usage. You MUST NEITHER add NOR access any attributes starting
  with '_at_' in your content types.
  [tiran]

* Fixed  FTP/WebDAV's PUT in BaseObject:If a new object should be created with
  an id that can be acquired, then the existing object is silently overwritten
  rather than a new one created
  [dm]

* Fixed with problem MKCOL/MKD used by FTP/WebDAV and
  BaseFolde.manage_addFolder. Now MKCOL/MKD are creating a sub folder with the
  type name of the current folder except when this behavior is overwritten
  by an attribute called _at_type_subfolder.
  [dm]

* Fixed [ 1006559 ] addReference allows adding garbage references. addReference
  is raising a ReferenceException when an invalid source or target was applied.
  [duncanb, tiran]

* Fixed [ 1006491 ] File widget makes useless str(value) conversion
  [tiran, lurker]

* Fixed possible issue inside ArchetypeTool.getWidgets() by calling
  initializeArchetype() on the wrapped dummy instance.
  [tiran]

* Update catalog on reference catalog has raised a KeyError when trying to
  access an object that was already removed. Now ReferenceResolver is fetching
  the KeyError in resolve_url() and returns None instead.
  [tiran]

* Added getRaw() method to LinesField which is returning the output of get().
  Before this change the edit accessor was using the accessor which might be an
  overwritten accessor. Thanks to Joel Burton who has figured out the problem.
  [tiran]

* Raise an ReferenceException inside Field.ReferenceField._Vocabulary when the
  brain doesn't have a valid uid.
  [tiran]

* Refresh the uid catalog and reference catalog after migration.
  [tiran]

* Don't commit full transactions inside migration. This may lead to database
  corruption.
  [tiran]

* General cleanup of imports and public.py. Also include Marshallers in public.
  [tiran]

* Fixed [ 1007850 ] Cancel content creation fails with portal factory tool
  Archetypes is playing nice again with portal factory
  [tiran]

* Raise SchemaException when trying to add two or more primary fields to one
  content type. Adding more than one primary field can lead to unexpected
  behaviors.
  [tiran]

* Don't store mimetype item instances in BaseUnit. Now BaseUnit is storing the
  mimetype and the binary flag as ordinary strings. Old BaseUnits are auto-
  magically altered using __setstate__().
  Storing mimetype item objects in BaseUnit seemed to lead to memory leaks.
  [tiran]

* Reenabled ints as DisplayList and Vocabulary keys.
  [tiran]

* Subclass InAndOutWidget from ReferenceWidget which adds the addable feature
  to InAndOutWidget.
  [ender]

* Removed old and deprecated old_OrderedBaseFolder implementation from
  Archetypes.
  [tiran]

* There is no need to subclass BaseFolder from Folder since SkinnedFolder is
  already subclasses from Folder (over PortalFolder).
  [tiran]

* Store subobjects inside a volatile attribute instead of using SESSION which
  1) was broken by design 2) was a possible memory eater.
  [tiran]

* Fixed [ 988948 ] Reference field: radio button "no reference" isn't checked
  [tiran]

* Added properties for [ 1008670 ] Feature request: specify year interval for
  the Calendar Widget
  Right now these properties are useless because the plone templates can't
  handle it but I got word from limi that we are allowed to add these features
  to the templates
  [tiran]

* Fixed [ 1005843 ] Stringfields should not default to '0' in search mode
  [tiran]

* Moved addable feature of reference.pt to a seperate file and added addable to
  inandout.pt
  [ender]

* Use manage_rebuildCatalog for refresh_references in installTypes()
  [tiran]

* Fixed [ 905677 ] manage_afterClone is a bit of a mess
  [dreamcatcher]

* Template cleanups
  [dreamcatcher]

* ImageField: Fixed problem with empty image field and calls to getScale,
  getSize and tag()
  [tiran]

* Cleaned up the Extensions/utils.py function which are installing AT and it's
  dependencies. Added a method setupArchetypes() which is setting up the internals.
  These fixes are fixing the problem that AT don't seemed to be installed when
  it's installed from an AT based product.
  [tiran]

* Schema: fixed a bug, it wasnt allowed to override a primary field by another
  primary field with the same name.
  [jensens]

* Added getWrappedField(key) to BaseObject which is returning the field
  instance explictly wrapped relative to the Archetype instance. This method is
  required for security reasons in order to allow Zope to find the acl_users.
  [tiran]

* Fixed [ 1009894 ] CSS class on validation error messages. It's using Plone's
  'error' class.
  [tiran]

* Fixed two bugs in ttw template registration. 1st the registration-tab was
  broken, and 2cd it can't deal with migrated ATCT.
  [jensens]

1.30beta5 - 2004-08-06
----------------------

* Fixed forbidden access to schema methods when the schema was
  acccessed using archetype_tool.lookupType().
  [tiran]

* Fixed typo in widgets/reference.pt
  [tiran]

* Do not depend on plone's document_byline template which is
  not available in CMF.
  [ajung, tiran]

* Applied patch from [ 997044 ] db_encoding parameter is lost
  in BaseSQLStorage.set
  [biza, tiran]

* Updated complex type to make it work inside Plone again. It's very
  usefull to test fields and widgets.
  [tiran]

* Applied [ 974846 ] Patch for bug #944343 inandout/picklist values
  not sticky to make picklist and inandout compatible with reference
  field again.
  [alecacct, tiran]

* Reenabled Ben's reference graph tool by removing some stalled testing code
  [tiran]

* Support unqualified references in reference graph tool
  [bcsaller]

* Added a test for mimetypes registry before adapter call in BaseUnit.update()
  with a more verbose error in the case the user hasn't updated MTR properly.
  [tiran]

* Fixed Find Objects of uid catalog and reference catalog: Use the relative
  path (relative to the portal) of the object as uid instead of the full
  physical path
  [tiran]

* Added Rebuild Catalog tab to uid catalog and reference catalog to make the
  life easier
  [tiran]

* Added context to the PortalTransform.convertTo() call in BaseUnit.transform()
  [tiran]

* Don't fail to install a product which doesn't have any types
  [spamsch]

* Catch Unauthorized exception in ExtensibleMetadata.allowDiscussion that could
  be raised by the discussion tool when the authenticated users hasn't
  ModifyPortalContent permissions.
  [tiran]

* Added IUIDCatalog and IReferenceCatalog interface. Test for interfaces in
  the installation process of Archetypes to remove invalid catalogs.
  [tiran]

* Added a check to Field._Vocabulary: A result from portal catalog must be a
  result from uid catalog, too.
  [ender]

* FileField/ImageField: Make sure we always get a wrapped object in content_class
  [tiran]

* ImageField: Fixed getScale/getSize methods, added tag() method
  [tiran]

* session_save_form was using direct attr access in UT
  code you must use Schema accessor so schema has a
  security context
  REMEMBER: <BradB> "Free as in Free Iraq"
  [runyaga]

* issue a warning if they register 2 classes with the
  same name in the same project.  this will happen on
  startup.
  [runyaga]

* do not assume templates have title_or_id attribute
  [runyaga]

* Added kernel_make_uuid which is using /proc/sys/kernel/random/uuids as source
  for unique ids. Thanks to Ben for this cool idea. :)
  The kernel uuid generator is actually a tiny bit slower than our uuid
  generator but it should be safer if you are worried about the uniqueness of
  uuids.
  [bcsaller, tiran]

* Fixed [ 1002481 ] Missing i18n: <any>, added at_search_any msgid.
  [tiran]

1.3.0-beta4 - 2004-07-09
------------------------

* Fix bug on image deletion [clebeaupin]

* Fixed [ 997899 ] 1.3b3 will ot startup on Zope 2.7, Windows.
  Removed api helper to avoid problem with windows [dreamcatcher, tiran]

* Small improvements on migration (using aq_base() instead of attribute, using
  is None test instead of simple bool test)
  [tiran]

* Get the first non None object instead of the first element of a list of
  brains to circumvent problems with stalled objects inside the uid catalog
  [tiran]

* Don't raise AttributeError when no reference can be found
  [__gotcha]

* Fixed a problem introduced by getRaw method on ReferenceField class.
  When using a field on 'hidden' mode, field.pt uses field.edit_acessor
  to get field value (and edit_accessor calls getRaw).
  The problem was related to ReferenceFields not multivalued where
  getRaw always returns a list, instead of the single UID.
  [deo]

* Added a flag refresh_references to Archetypes.Extensions.utils.installTypes
  (default False). When enabled it's using ZopeFindAndApply to find all
  objects of the given types and refreshes their references. This is a
  workaround but not a real fix for bug 997840.
  [tiran]

* Added a test for at_version information
  [tiran]

* Support Pdata (possible large data from OFS.Image) as type for FileField.
  This is required to load large images and files based on OFS.Image into a
  FileField.
  [tiran]

* Merged sid's security branch. DefaultLayer based classes (Field, Widget) and
  schema are now subclassed from ExtensionsClass.Base.
  [dreamcatcher, tiran]

* Fixed [ 994511 ] Field.py: Vocabulary cannot handle 2-tuple list
  [tiran]

* Fixed creation_date field to be metadata again
  [tiran]

* Fixed [ 944440 ] getMsgID method of DisplayList should be used
  [tiran]

* Fixed [ 972091 ] base widget doesn't support visble attribute for view
  [tiran]

* Added better traceback information to fixAfterRenameType
  [tiran]

* Fixed [ 988898 ] Don't swallow ConflictError (SQL missing)
  [tiran]
