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é Compaan.
   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:
     o no more direct attribute access or attribute storage
     o rearranged some lines
     o 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.
   XXX: Add a comment to the documentation that users should take care when
   mixing strings and ints!
   [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]
