Skip to main content

Archetypes is a developers framework for rapidly developing and deploying rich, full featured content types within the context of Zope/CMF and Plone.

Project description

Introduction
============

Archetypes is a developers framework for rapidly developing and deploying
rich, full featured content types within the context of Zope/CMF and Plone.

Archetypes is based around the idea of an `Active Schema`. Rather than
provide a simple description of a new data type, Archetype schemas do the
actual work and heavy lifting involved in using the new type. Archetype
Schemas serve as easy extension points for other developers as project
specific components can be created and bound or you can choose among the
rich existing set of features.

Features
--------

* Simple schemas with working default policy.

* Power and flexibility with lowered incidental complexity.

* Full automatic form generation

* Unique Ids for objects

* Object References/Relationships

* Per Type cataloging in one or more catalogs

Unit testing
------------

* Go into the root of your buildout and run::

bin/test Products.Archetypes

Documentation
-------------

Major resource for documentation is located at `plone.org`_.

.. _plone.org: http://plone.org/products/archetypes/documentation

Changelog
=========

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]

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Products.Archetypes-1.7.7.tar.gz (522.5 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page