1.3.0 - 2004-09-30
==================
 
 * Fixed [ 1034649 ] Typo breaks catalog index creation: index_acessor ->
   index_accessor
   [ronnix]

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

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

 * 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. Thx 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)
   [dtremea]

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

 * 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.
   [dtremea]

 * 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. Thx 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. Thx 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.
   [dtremea]

 * 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]
